Skocz do zawartości

Problem ze switchem


matik97

Rekomendowane odpowiedzi

Czy gdy używamy pętli (albo warunku, nie wiem jak to nazwać) switch, to czy w poszczególnych case'ach musimy podawać konkretne wartości? Chodzi np. o to, żeby przy jednym case'ie dać "> 0" a przy drugim "<= 0", tak żeby zamiast:

if vspeed > 0

{

image_index = 0

}

else

{

image_index = 1

}

użyć po prostu jednego switcha:

switch (vspeed)

{

case > 0: image_index = 0; break;

case <= 0: image_index = 1; break;

}

Oczywiście ten switch nie działa, dlatego pytam się jak to poprawić.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

zawsze moze zrobić:

GML
if( vspeed > 0 ) wieksze = 1;

else wieksze = 0;

 

switch ( wieksze )

{

0: image_index = 0; break;

1: image_index = 1; break;

}

 

:D

Odnośnik do komentarza
Udostępnij na innych stronach

Wystarczy

GML
image_index = floor(vspeed)

GM tak kompiluje kod (czy jak to się tam nazywa), że image_index MUSI przyjąć wartość od 0 do image_number-1 (oczywiście jako liczbę naturalną). To oznacza, że jeśli damy

GML
image_index = -3

to image_index będzie równe 0.

Jeśli damy

GML
image_index = image_number+2

to image_index = image_number-1.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie prawda, bo image index na ujemnym to jest tyle samo co ilosc klatek animacji -x.

Np jesli nasza animacja ma 10 klatek a ty w image index dasz -3 to wyswietlona zostanie 7 klatka animacji, a image index bedzie normalnie na wartosci ujemnej.

 

Jeśli zaś dasz image_index = 11, to wyswietlona zostanie 1 klatka animacji.

Bierzmy pod uwagę, że mając 10 klatek animacji indexowanie jest od 0 do 9.

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ę...