Skocz do zawartości

Znikające sprity


Ignifil

Rekomendowane odpowiedzi

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

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

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

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

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

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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...