Ignifil Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 Hej mam mały problem, otóż mam sobie object o nazwie Jednostka i w draw tego objectu mam GML if (zaznaczony = true) draw_circle_color(self.x,self.y,10,c_green,c_lime,2) i wszystko ładnie i pięknie działa, poza faktem, że ten object nie posiada sprita <_<, a za to, gdy daje ten kod do np. step to wtedy object posiada sprite, ale nie rysuje kółka, gdy go zaznaczam, nie wiem co z tym zrobić :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 Jak dajesz coś do drawa to musisz samodzielnie rysować swojego sprite, czyli: GML //DRAW draw_sprite(sprite_ktory_ustawiles_obiektowi, -1, x, y); if (zaznaczony = true) draw_circle_color(self.x,self.y,10,c_green,c_lime,2) 22. Znikł mi mój obiekt pomimo że ma ustawionego sprita i umieściłem go w określonym roomie, co zrobić? Sprawdź czy obiekt ma zaznaczoną opcję 'Visible', lub jeśli używasz w nim eventu 'draw' dodaj w nim taką linijkę: GML draw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); Zawsze gdy używasz tego eventu GM wyłączy Ci automatyczne rysowanie obiektu, więc musisz to zrobić ręcznie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 Dodanie czegoś do eventu draw usuwa sprite. Musisz rysować go samemu. W GM8.1 użyj GML draw_self(), a w poprzednich wersjach użyj GML draw_sprite(image_index,sprite_index,x,y) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
adam014 Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 Jak GM8.1 to wystarczy draw_self(); a jak 8 to lepiej dać draw_sprite(sprite_index,image_index,x,y); EDIT: Threef szybszy ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 18 Lutego 2013 Autor Udostępnij Opublikowano 18 Lutego 2013 Jak dajesz coś do drawa to musisz samodzielnie rysować swojego sprite, czyli: GML //DRAW draw_sprite(sprite_ktory_ustawiles_obiektowi, -1, x, y); if (zaznaczony = true) draw_circle_color(self.x,self.y,10,c_green,c_lime,2) Dzięki :P Tak też myślałem, bo coś mi świtało z moich wcześniejszych zmagań (wracam do robienia gier po dwóch latach przerwy i prawie nic nie pamiętam) tylko ja wpisywałem Sprite_index i wtedy też nie działało. Tak dla ścisłości, czym się różni funkcja Sprite_index od draw_sprite ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 18 Lutego 2013 Autor Udostępnij Opublikowano 18 Lutego 2013 Ej, a co zrobić, żeby te kółka znikały kiedy zaznaczony = false? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 sprite_index to zmienna przechowująca aktualny sprite i maskę kolizji (nie jestem na 100% pewien) obiektu draw_sprite() to funkcja odpowiadająca za rysowanie sprite w odpowiednim x i y, istnieje kilka rodzaji tej funkcji pozwalajacych na rysowanie ze skalą, obrotem, kolorem, alphą, etc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 GML Jak dajesz coś do drawa to musisz samodzielnie rysować swojego sprite, czyli: GML //DRAW draw_sprite(sprite_ktory_ustawiles_obiektowi, -1, x, y); if (zaznaczony = true) draw_circle_color(self.x,self.y,10,c_green,c_lime,2) Dzięki :P Tak też myślałem, bo coś mi świtało z moich wcześniejszych zmagań (wracam do robienia gier po dwóch latach przerwy i prawie nic nie pamiętam) tylko ja wpisywałem Sprite_index i wtedy też nie działało. Użyj tego GML draw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); Tamto skreśliłem bo zauważyłem lepsze rozwiązanie. lub jeśli używasz GM 8.1 to, tak jak Threef napisał GML draw_self(); Tak dla ścisłości, czym się różni funkcja Sprite_index od draw_sprite ? draw_sprite rysuje sprite na ekranie sprite_index to zmienna która przechowuje aktualny sprite obiektu. @EDIT UP szybszy :D Ej, a co zrobić, żeby te kółka znikały kiedy zaznaczony = false? Przecież masz warunek za to odpowiadający GML if(zaznaczony) { //rysuj kolka } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 18 Lutego 2013 Autor Udostępnij Opublikowano 18 Lutego 2013 Przecież masz warunek za to odpowiadający GML if(zaznaczony) { //rysuj kolka } ale jednak gdy zaznaczony zmienia się na false, to kółka zostają, nie do końca wiem czemu. w momencie w którym sprite był niewidoczny kółka znikały jak trzeba, a teraz naprawiłem jeden problem i powstał drugi <_< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 18 Lutego 2013 Udostępnij Opublikowano 18 Lutego 2013 Pokaż kod Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignifil Opublikowano 18 Lutego 2013 Autor Udostępnij Opublikowano 18 Lutego 2013 ok, naprawiłem juz, okazało się, że po prostu usunęło kilka klocków, nie mam pojęcia czemu, może przez przypadek wczytałem starszą wersje projektu. Dzięki wszystkim za pomoc :) a i jeszcze mam jeden problem, jak chce zmienić kolor tego kółka to on i tak pozostaje zielony 0.o mam w kodzie GML draw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); if (zaznaczony = true) draw_circle_color(self.x,self.y,12,c_yellow,c_lime,2) A i tak kółko jest zielone edit: dobra, nie ważne, ośmieszyłem sie tym po prostu :lol: zwykłe niedopatrzenie, jeszcze raz dzięki wszystkim za pomoc, siemka :D 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ę