Prencik Opublikowano 24 Sierpnia 2015 Udostępnij Opublikowano 24 Sierpnia 2015 Witam :) jak zrobić by po kliknięciu myszką na dany obiekt zniszczyły się wszystkie obiekty które są koloru np zielonego a które wcześniej za pomocą klocka color sprite przefarbowały się na zielono ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Sierpnia 2015 Udostępnij Opublikowano 24 Sierpnia 2015 Wiem, że robisz to na klockach, ale rozwiązanie dam w kodzie. Postaram się go wyjaśnić i szczerze liczę, że postarasz się zapamiętać funkcje których Cię tutaj nauczę. Po pierwsze musisz znać kolor. Ustawiłeś zielony, ale czy znasz jego RGB? Musisz je znać, bo komputer nie zna pojęcia "zielonego" jako szereg różnych barw. Najpierw musisz odwołać się do wszystkich obiektów wśród których mogą znajdować się te których szukasz. Aby odwołac się do wszystkich instancji obiektu używasz "with" wygląda to następująco: GML with(NazwaObiektu) { //Kod ktory ma sie wykonac w tych obiektach } Jeżeli obiekt się nazywa ObjCelDoWcisniecia to bedzie to wygladalo tak: GML with(ObjCelDoWcisniecia) { } Między { i } wpisuje się to co ma się z nimi dziać. Jeżeli chcesz coś sprawdzić to używasz if, czyli po polsku "Jeżeli". Dosyć proste, prawda? Ty chcesz sprawdzić to: Jeżeli kolor sprite'a to zielony to.... Teraz jak sprawdzić kolor sprite'a? Kolor sprite'a jest zapisany w zmiennej image_blend. To mamy już połowę zdania: GML if image_blend //Jeżeli kolor sprite'a....</span> Teraz aby porównać coś z czymś używasz znaku równa się, czyli = . Teraz musimy znaleźć kolor który ma nam sprawdzić. Do tego służy make_color_rgb(R,G,B ). Wewnąrz nawiasu są trzy litery: R,G,B. To te wartości RGB koloru który wybrałeś. Jeżeli twój wybrany kolor to np 34,177,76 (typowa paintowa zieleń) to wygląda tak: GML make_color_rgb(34,177,76) Okej to mamy już całe pytanie: GML if image_blend = make_color_rgb(34,177,76) //Jeżeli kolor sprite'a to kolor [34,177,76](nasza wybrana zieleń).... { //Tutaj to co się stanie jeżeli odpowiedź brzmi TAK } Okej, jeżeli kolory się zgadzają, to chesz usunąć obiekt, prawda? Od tego jest instance_destroy() Cały kod powinien wyglądać tak: GML with(ObjCelDoWcisniecia) { if image_blend = make_color_rgb(34,177,76) { instance_destroy() } } Notka od autora: Prosze postaraj sie zapamietac to co tutaj napisalem, poniewaz jezeli bedziesz tylko kopiowac i wklejac rozwiazania podane Ci przez innych, nigdy sie niczego nie nauczysz. Pomoc od innych jest wazna, ale musisz z niej wyciagnac co sie da, zapamietac co sie da i byc troche madrzejszym. Mowie to, bo mielismy i mamu tu takich ktorzy nigdy sie niczego nie nauczyli bo nie uczyli sie kodu od innych uzytkownikow, tylko go wklejali na slepo bez zrozumienia. (chyba sobie to wkleje do sygnatury) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prencik Opublikowano 24 Sierpnia 2015 Autor Udostępnij Opublikowano 24 Sierpnia 2015 ok wielkie, wielkie dzięki :) ale jak na przykład chciałbym zastosować to do większej ilości obiektów ? musiał bym wtedy wszystko kopiować i zmieniać nazwę obiektu w nawiasie ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Sierpnia 2015 Udostępnij Opublikowano 24 Sierpnia 2015 Są dwa wyjścia: 1. Tak jak napisales, kopiowac. 2.zrobić tak: 2.1 Zrobić nowy obiekt który nie występuje w grze i nazwać go np. ObjKlikalnyObiekt 2.2 Ustawić klikalnym obiektom ten ObjKlikalnyObiekt jako PARENT 2.3 W "with" odnosić się do PARENTA. Nie musi istniec w grze, wystarczy ze jest w edytorze. W ten sposob ten with odniesie sie do WSZYSTKICH obiektow ktore maja ObjKlikalnyObiekt jako parent. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prencik Opublikowano 24 Sierpnia 2015 Autor Udostępnij Opublikowano 24 Sierpnia 2015 no dobrze i ostatnie pytanie :D skąd mam znać rgb danego koloru ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Sierpnia 2015 Udostępnij Opublikowano 24 Sierpnia 2015 Wybrałeś kolor z palety, prawda? Powinieneś tam mieć RGB wyświetlone. Edit: Wciśnij "Definiuj kolory niestandardowe" aby wyskoczyło okienko z widocznym RGB Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prencik Opublikowano 24 Sierpnia 2015 Autor Udostępnij Opublikowano 24 Sierpnia 2015 nadal coś nie działa ... :( nie rozumiem ... ustawiłem ten kod w obiekcje który ma się zniszczyć w evencie create ... i po naciśnięciu kiedy zmienia się na kolor zielony (0,255,0) nic się nie dzieje z tego co się domyśliłem to RGB to skrót od kolorów red,green,blue i spisałem kolejno wartości liczbowe z koloru z tabeli Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 24 Sierpnia 2015 Udostępnij Opublikowano 24 Sierpnia 2015 A daj w with przed if GML show_message("r:"+image_blend.r+"g:"+image_blend.g+"b:"+image_blend.b); To powinno wyświetlić wartości image_blend każdego obiektu tego typu. Ja tak robię kiedy coś nie działa a nie wiem co. Dzięki temu będziesz wiedział jakie wartości powinieneś podać w if. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 25 Sierpnia 2015 Udostępnij Opublikowano 25 Sierpnia 2015 A daj w with przed if GMLshow_message("r:"+image_blend.r+"g:"+image_blend.g+"b:"+image_blend.B); To powinno wyświetlić wartości image_blend każdego obiektu tego typu. Ja tak robię kiedy coś nie działa a nie wiem co. Dzięki temu będziesz wiedział jakie wartości powinieneś podać w if. Tak nie wyciągniesz wartości RGB. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 25 Sierpnia 2015 Udostępnij Opublikowano 25 Sierpnia 2015 Istnieje maciupka szansa, że funkcja "color sprite" z klocka nie zapisuje sie w image_blend, chociaz wydawalo mi sie, ze tak wlasnie jest. Wie ktos cos wiecej na ten temat? Sprawdzil ktos? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się