Skocz do zawartości
  • 0
Chell

Temat zbiorczy na drobnostki

Pytanie

masz pytanie, które nie zasługuje na własny temat i chcesz je zadać w shoutboxie? nie rób tego! tam utonie! spytaj tutaj. :-)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

813 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Kontekst: Znak ! znaczy to samo co not

 

zamiast robić if !vspeed=0 zrób if vspeed!=0

 

Możliwe że kompilator interpretuje !vspeed jako "Odwóć vspeed", gdzie wartość 0 i mniej to negative a powyżej 0 to positive. Program zamienia wartość dodatnią (>0)(czyli TRUE) na 0 (czyli FALSE), podczas gdy wartość jest ujemna (<0) jest już FALSE więc zostaje zmieniona na TRUE czyli 1.

A że 1 nie równa się 0 kod się nie wykonuje.

Tutaj jeszcze tabelka dla zwizualizowania sytuacji

Liczba Wartość Odwrócona wartość Odwrócona wartość w formie liczbowej  
<0 FALSE TRUE 1 Nie równe 0, nie wykonuje kodu.
0 FALSE TRUE 1 Nie równe 0, nie wykonuje kodu.
>0 TRUE FALSE 0 Równe 0, wykonuje kod

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

Musiałbyś to zapisać w ten sposób:
 

if not (vspeed = 0) sprite_index = s_Player_Jump;

albo

if  !(vspeed = 0) sprite_index = s_Player_Jump;


nie wiem czy to dobrze wytłumaczę, ale w Twoim przykładzie not odnosi się tylko do vspeed i GM traktuje vspeed jako true/false a nie jako zmienną int.

not vspeed daje false i to póżniej przyrównuje do 0 (czyli wg GM drugie false) co razem daje true. To samo powinno być jakbyś zapisał

if  vspeed  sprite_index = s_Player_Jump;

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0

if not vspeed = 0

to dokładnie to samo co

if (not vspeed) = 0

 

zatem w tej sytuacji, negujesz vspeed (zatem zwraca true gdy vspeed jest 0 i false w pozostałych przypadkach).

 

Tobie chodzi o:

 

if not (vspeed = 0).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×