gol350 Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 Mam taki kod: if mouse_check_button_released (mb_left) and mouse_x>x then action_move("000001000",3); end I wiecie co ,ze słowem end jest coś nie tak bo wyskakuje mi taki błąd: ___________________________________________ FATAL ERROR in action number 1 of Step Event for object object2: COMPILATION ERROR in code action Error in code at line 3: end at position 2: Unexpected symbol in expression. Czytałem ostatnio o warunkach i można je kończyć słowem "end" a nawet trzeba ,o ile wcześniej dało się "then". Nie mam pojęcia co jest nie tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 no to nie kończ tego słowem end, też będzie dobrze. E: Możesz użyć nawiasów klamrowych, co za problem... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 bo end to inaczej zamknięta klamra }, a liczba otwarych klamer i zamkniętych musi być taka sama. po then ( a najlepiej go wywal ) dodaj begin ( lub { ). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 30 Grudnia 2008 Autor Udostępnij Opublikowano 30 Grudnia 2008 Ale ja chcę napisać drugi ,odwrotny warunek po tym. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 GML if mouse_check_button_released (mb_left) and mouse_x>x then action_move("000001000",3); else //... albo GML if mouse_check_button_released (mb_left) and mouse_x>x { action_move("000001000",3); } else { //... } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 30 Grudnia 2008 Autor Udostępnij Opublikowano 30 Grudnia 2008 GMLif mouse_check_button_released (mb_left) and mouse_x>x then action_move("000001000",3); else //... albo GMLif mouse_check_button_released (mb_left) and mouse_x>x { action_move("000001000",3); } else { //... } Sęk w tym ,że ja nie chcę "else" tylko drugie "if" od razu i żeby te dwa if były oddzielne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 GML if mouse_check_button_released (mb_left) and mouse_x>x { action_move("000001000",3); } if coś innego { //... } paranoja, przecież to podstawy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 30 Grudnia 2008 Autor Udostępnij Opublikowano 30 Grudnia 2008 Ale to mi nie działa. Ludzik chodzi w lewo ,do góry i w dół ale nie chce w prawo. Chodzi mi o mouse_x>x Drugi warunek: mouse_x<x Trzeci warunek: mouse_y>y Czwarty warunek: mouse_y<y Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 może poszukaj różnic pomiędzy chodzeniem w lewo, górę, dół a prawo :/ E: Albo pokaż kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 30 Grudnia 2008 Autor Udostępnij Opublikowano 30 Grudnia 2008 może poszukaj różnic pomiędzy chodzeniem w lewo, górę, dół a prawo :/ E: Albo pokaż kod. Oto kod: if mouse_check_button_released (mb_left) and mouse_x>x begin action_move("000001000",3); end if mouse_check_button_released (mb_left) and mouse_x<x begin action_move("000100000",3); end if mouse_check_button_released (mb_left) and mouse_y>y begin action_move("010000000",3); end if mouse_check_button_released (mb_left) and mouse_y<y begin action_move("000000010",3); end Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 lol z tego co widzę zawsze spęłnią się dwa warunki. jeden do góra/dół, a drugi prawo/lewo, gdyż mouse_x jest zawsze większe lub mniejsze od x (chyba, że trafisz dokładnie na tego pixela) tak samo z y, a jako że y jest niżej to wykonywany jest y. kończąc: ten kod jest do dupy :jezor: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 30 Grudnia 2008 Autor Udostępnij Opublikowano 30 Grudnia 2008 lol z tego co widzę zawsze spęłnią się dwa warunki. jeden do góra/dół, a drugi prawo/lewo, gdyż mouse_x jest zawsze większe lub mniejsze od x (chyba, że trafisz dokładnie na tego pixela) tak samo z y, a jako że y jest niżej to wykonywany jest y. kończąc: ten kod jest do dupy :jezor: To x sprita jest dokładnie w środku sprita ? A można zrobić tak ,żeby x sprita miało określoną długość? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 tam gdzie ma origina :/ czyli, jeżeli nic nie zmieniałeś to na 0,0 sprita wymęczyłeś mnie, idę spać :sleep1: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 30 Grudnia 2008 Udostępnij Opublikowano 30 Grudnia 2008 A nie prościej tak: GML (step) if mouse_check_button_released (mb_left) { direction=point_direction(x,y,mouse_x,mouse_y); // direction przechowuje kat direction=round(direction/90)*90; // direction przechowuje kat zaokraglony do 90 stopni speed=3; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 31 Grudnia 2008 Udostępnij Opublikowano 31 Grudnia 2008 To nie pascal żeby używać begin i end lol jeśli można Harry czemu na początku przy zaokrąglaniu dzielisz direction na 90 a potem mnożysz razy 90 przeciż to na to samo wyjdzie chyba że pierw zaokrągli, ale i tak wyjdą minimalne zmiany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 31 Grudnia 2008 Udostępnij Opublikowano 31 Grudnia 2008 To nie pascal żeby używać begin i end lol hm.. lol w gml też jest begin i end jeśli można Harry czemu na początku przy zaokrąglaniu dzielisz direction na 90 a potem mnożysz razy 90 przeciż to na to samo wyjdzie chyba że pierw zaokrągli, ale i tak wyjdą minimalne zmiany. Nie wyjdą minimalne zmiany - tak ma być lol :) Jak nie pomnożysz to ci g**** wyjdzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 31 Grudnia 2008 Udostępnij Opublikowano 31 Grudnia 2008 To jest Pascal żeby było śmiesznie, tylko naciągany pod C++/PHP, albo odwrotnie. I jaka paranoja, jaka paranoja. Składnia warunku z Pascala/Delphiego: GML if warunek = true then begin akcja1...; akcja2...; akcja3...; ... akcjaN...; end; C++/PHPGML if( warunek == true ) { akcja1...; akcja2...; akcja3...; ... akcjaN...; } Oba zapisy poprawne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 31 Grudnia 2008 Udostępnij Opublikowano 31 Grudnia 2008 Ej no, dlaczego utrudniacie sobie życie? Jeśli wyrażenie zawarte w warunku nie jest równe 0, warunek się spełnia. Czyli, prościej mówiąc, dodawanie == true jest idiotyczne. Jeśli już byłoby konieczne, to taki warunek nie byłby prawidłowy: zmienna > 10 Ponieważ, zapomnieliśmy o == true, więc taki warunek: ( zmienna > 10 ) == 1 byłby poprawny. A ja sam jakoś nie lubię patrzyć na == true :/ . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 31 Grudnia 2008 Udostępnij Opublikowano 31 Grudnia 2008 Nie widzisz, że to ma tylko ilustrować, że <warunek> musi zostać spełniony aby akcje został wykonany? Czy uważasz mnie za idiotę? 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ę