Skovv Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Siemka.Napisałem taki kod na zastopowanie animacji: if other.sprite_index=player_stoi_dol or other.sprite_index=player_stoi_gora or other.sprite_index=player_stoi_lewo or other.sprite_index=player_stoi_prawo{ if sprite_index=player_stoi_dol{sprite_index=player_atak_dol; image_speed=0} else if sprite_index=player_stoi_gora{sprite_index=player_atak_gora; image_speed=0} else if sprite_index=player_stoi_lewo{sprite_index=player_atak_lewo; image_speed=0} else if sprite_index=player_stoi_prawo{sprite_index=player_atak_prawo; image_speed=0} } else { if sprite_index=player_stoi_dol{sprite_index=player_biegnie_dol; image_speed=0} else if sprite_index=player_stoi_gora{sprite_index=player_biegnie_gora; image_speed=0} else if sprite_index=player_stoi_lewo{sprite_index=player_biegnie_lewo; image_speed=0} else if sprite_index=player_stoi_prawo{sprite_index=player_biegnie_prawo; image_speed=0} } else { if sprite_index=player_stoi_dol{sprite_index=player_umiera_dol; image_speed=0} else if sprite_index=player_stoi_gora{sprite_index=player_umiera_gora; image_speed=0} else if sprite_index=player_stoi_lewo{sprite_index=player_umiera_lewo; image_speed=0} else if sprite_index=player_stoi_prawo{sprite_index=player_umiera_prawo; image_speed=0} } else { if sprite_index=player_atak_dol{sprite_index=player_stoi_dol} if sprite_index=player_atak_gora{sprite_index=player_stoi_gora} if sprite_index=player_atak_lewo{sprite_index=player_stoi_lewo} if sprite_index=player_atak_prawo{sprite_index=player_stoi_prawo} } else { if sprite_index=player_biegnie_dol{sprite_index=player_stoi_dol} if sprite_index=player_biegnie_gora{sprite_index=player_stoi_gora} if sprite_index=player_biegnie_lewo{sprite_index=player_stoi_lewo} if sprite_index=player_biegnie_prawo{sprite_index=player_stoi_prawo} } else { if sprite_index=player_umiera_dol{sprite_index=player_stoi_dol} if sprite_index=player_umiera_gora{sprite_index=player_stoi_gora} if sprite_index=player_umiera_lewo{sprite_index=player_stoi_lewo} if sprite_index=player_umiera_prawo{sprite_index=player_stoi_prawo} wyskakuje błąd: FATAL ERROR in action number 1 of Other Event: Animation End for object Player: COMPILATION ERROR in code action Error in code at line 20: else at position 2: Unexpected symbol in expression. Ten kod jest chyba zły.Jak napisać lepszy?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Zaraz go przeczesze w poszukiwaniu bledu i ci napisze w edicie. W takim miejscu jak ty napisales else to niemoże to być. Zreszta jak usunelem to linijke to znowu byl taki sam blad w innej, i znowu, i znowu.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 ok Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Niewiem co chciałeś osiągnąć np tym: if sprite_index=player_biegnie_prawo{sprite_index=player_stoi_prawo} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 No chciałem zrobić że jak ide do przodui trzymam przyciski go puszcze to sie zmienia na obrazek jak stoi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 #up GML if keyboard_check(vk_right) and sprite_index != player_biegnie_prawo then sprite_index = player_biegnie prawo if !keyboard_check(vk_right) then sprite_index = player_stoi_prawo Chociaz tu lepiej by bylo z else, bo w lewo jak zrobisz tak samo to to nie bedzie wiedzialo co robic jak nie bedzie wcisniety i prawy i lewy :D Napisałes sobie o przycisku, a w kodzie tego nie napisales. A i uzywaj znacznikow [ gml] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 GML if keyboard_check(vk_right) and sprite_index != player_biegnie_prawo then sprite_index = player_biegnie prawo if !keyboard_check(vk_right) then sprite_index = player_stoi_prawo if keyboard_check(vk_left) and sprite_index != player_biegnie_lewo then sprite_index = player_biegnie_lewo if !keyboard_check(vk_left) then sprite_index = player_stoi_lewo ... tak to ma być?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 Ehh błąd jest prosty. zobacz jaką zrobiłeś konstrukcję: GML if costam=true { ... } else //jeżeli costam ma dowolną wartość inną niż true { ... } else //wszystkie możliwości już były, zatem do tego else trafia zbiór pusty - powoduje ono błąd.. //else nie można dać po innym else, daje się je tylko po if { ... } else //do tego else program nawet nie dojdzie, bo już poprzednie wywaliło błąd { ... } zauważ, że tylko pierwszy warunek wykona się jak cośtam=true, a drugi jak cośtam będzie miało dowolną inną wartość... ale pozostałe else nie mają żadnych warunków więc się nie wykonają, dlatego jest błąd ... do każdego if jest tylko jedno else. Co innego jak zrobisz else if - wtedy zostaje jeszcze jedno gołe else, ale nie więcej. Prawidłowo było by tak: GML if costam=true { ... } else if costam=7 { ... } else if costam='text' { ... } else //wszystkie pozostałe przypadki { ... } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 ehh...musze chyba jeszcze poczytac o petlach i watunkach... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 26 Czerwca 2008 Administratorzy Udostępnij Opublikowano 26 Czerwca 2008 nie, już wszystko jest wyjaśnione. Ale powiem prościej, może załapiesz :P Zakładamy, że idziesz do sklepu. Jeżeli masz 2 złote - kupujesz chipsy. Jeżeli masz mniej, to nie kupujesz. GML if kasa=2 { kupuje=true; } else { kupuje=false; } a teraz zakładamy, że jak masz 2 złote to kupujesz chipsy, jak złotówkę to snickersa, a jak mniej to nic. GML if kasa=2 { kupuje=true; chipsy=1; snickers=0; { else if kasa>=1 { kupuje=true; chipsy=0; snickers=1; } else { kupuje=false; } taka jest zasada. Jak idziesz na zakupy albo cię na coś stać, albo nie stać. Nie ma trzeciej opcji. Tak samo w programowaniu. Else to jest warunek który się dzieje w każdym innym przypadku niż te podane wcześniej, ale jeżeli po else dasz if, to możesz dodać kolejny warunek. Oczywiście pomiędzy klamerkami możesz wstawiać następne if wg. tej samej zasady. Możesz też nie dawać else i też jest to dobrze, bo po prostu w przypadku gdy coś nie spełni warunku nie stanie się nic. Mam nadzieję, że nieco wyjaśniłem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 można też kupić na raty ale ok.... :D Dzieki.Juz rozumiem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 Napisałem taki kod na strzelanie z łuku: GML if direction=90{sprite_index=player_atak_gora; image_speed=1} if direction=180{sprite_index=player_atak_lewo; image_speed=1} if direction=270{sprite_index=player_atak_dol; image_speed=1} if direction=0{sprite_index=player_atak_prawo; image_speed=1} wszystko działa tylko sie nie zatrzymoje.strzela ciagle Trzeba coś kombionować z image_speed? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dziadekkleofas Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Nie, trzeba po prostu zmienić po zakończeniu animacji sprita lub zakończeniu akcji strzelniczej na inną animację. Ale to chyba głupi i nie oczywisty sposób - nie radzę używać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skovv Opublikowano 26 Czerwca 2008 Autor Udostępnij Opublikowano 26 Czerwca 2008 Jak zmienić po animacji sprita skoro nie wiadomo kiedy animacja sie kończy.Trzeba chyba ustawić żeby tylko raz była.Pytanie jak :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 26 Czerwca 2008 Udostępnij Opublikowano 26 Czerwca 2008 Other => Animation end :] albo if image_index == image_number-1 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ę