Skocz do zawartości
Rafep

Błąd z "or"

Rekomendowane odpowiedzi

Cześć! Ostatnio napisałem taki oto kod w GM:S 1.4:

if floor(obj_gracz_widoczny.image_index) = 0 or 4

tylko, że warunek zawsze jest niespełniony. Nawet gdy image_index obiektu obj_gracz_widoczny jest równe 0 lub 4.

Natomiast, gdy usunę " or 4" to wszystko działa. Gdy image_index obiektu jest równy 0 wykonuje się dalszy ciąg kodu. Próbowałem też zamiast "or" wstawić "||", ale nie pomogło.

Wiecie może jak to naprawić?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
if floor(obj_gracz_widoczny.image_index) = (0 or 4) //a w ten sposób jest jakaś różnica?:)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Musisz powtórzyć całą składnie, nie możesz zrobić or tak na skróty
 

if( floor(obj_gracz_widoczny.image_index) == 0 or floor(obj_gracz_widoczny.image_index) == 4 )
{
	// kod
}

albo

if( floor(obj_gracz_widoczny.image_index) == 0)
{
	// kod
}
else if( floor(obj_gracz_widoczny.image_index) == 4 )
{
	// kod
}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Napisano (edytowane)

Można też w ten sposób:

var t = floor(obj_gracz_widoczny.image_index);
if (power(t - 2, 2) - 4 == 0) {
  // kod
}

 

Edytowane przez Konrad-GM
Zamieniłem x na t

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie do x, do innej zmiennej! Bo przesuniesz obiekt.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Faktycznie, nie przemyślałem tego, że w GML shadowing wbudowanych zmiennych może nie działać w taki sposób.

 

A po uproszczeniu to w sumie można wyrzucić funkcję power:

var t = floor(obj_gracz_widoczny.image_index) - 2;
if (t*t - 4 == 0) {
  // kod
}

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@Adriann Kod uruchamia się tylko, gdy wartość jest równa 4.

@SimianVirus7 Działa!

@Konrad-GM Też działa!

No. To w takim razie znalazłem już odpowiedź na moje pytanie. Jestem nowy na tym forum, tu się zamyka temat jakoś czy coś?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W pewnym sensie już go zamknąłeś. Jeśli chodzi Ci o taki przycisk zamykający temat to nie, nie ma (a przynajmniej ja o nim nie wiem :P ). Zwykle zamykamy tutaj tematy podziękowaniami^^ 

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

×