ch3matic Opublikowano 19 Stycznia 2010 Udostępnij Opublikowano 19 Stycznia 2010 mam takie pesudo ai dla obiektu, ale nie działa. create: GML change_dir = 0 idzie = 0 kierunek = 1 step: GML change_dir += 1 losuj = random(100) if(change_dir > 20 && idzie = 0){ if(losuj < 25 && place_free(x+1,y)) { idzie = 1 kierunek = 1 } else if(losuj > 24 && losuj < 50 && place_free(x,y+1)) { idzie = 1 kierunek = 2 } else if(losuj > 49 && losuj < 75 && place_free(x-1,y)) { idzie = 1 kierunek = 3 } else if(losuj > 74 && place_free(x,y-1)) { idzie = 1 kierunek = 4 } change_dir = 0 } if(idzie = 1){ switch(kierunek){ case 1: if(place_free(x+1,y)) { x += 1 change_dir -= 1 } else idzie = 0 case 2: if(place_free(x,y+1)) { y += 1 change_dir -= 1 } else idzie = 0 case 3: if(place_free(x-1,y)) { x -= 1 change_dir -= 1 } else idzie = 0 case 4: if(place_free(x,y-1)) { y -= 1 change_dir -= 1 } else idzie = 0 } } pewnie coś namieszałem, ale jestem już zmęczony tym i mózg mi się zaczyna lasować problem jest taki, że obiekt zaczyna jechać w lewo, dojeżdża do ściany i się przestaje ruszać zamiast zmieniać kierunek ma ktoś jakiś pomysł? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
IamTheLaw Opublikowano 19 Stycznia 2010 Udostępnij Opublikowano 19 Stycznia 2010 Po pierwsze: co to ai ma robic tak w ogole? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 19 Stycznia 2010 Autor Udostępnij Opublikowano 19 Stycznia 2010 losowac kierunek i zaczac jechac w jego strone o ile nie ma na drodze zadnych solid obiektow, jesli sa to znow losuje itp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 19 Stycznia 2010 Udostępnij Opublikowano 19 Stycznia 2010 create: go=0 kier=0 timer=0 step: if go=0 { kier=round(random(3)) // lasuj kierunek go=1 timer=0 // wyzeruj stoper } //////////////////////////////////////////////////// if go=1 { if kier=0 { if (place_free(x-1,y)) x-=1 else go=0 } else if kier=1 { if (place_free(x+1,y)) x+=1 else go=0 } else if kier=2 { if (place_free(x,y-1)) y-=1 else go=0 } else if kier=3 { if (place_free(x,y+1)) y+=1 else go=0 } timer+=1/room_speed // włącz stoper } //////////////////////////////////////////////////// if timer>10 // jeśli upłynniło więcej niż 10 sekund { go=0 // to wyzeruj go } i gotowe :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 19 Stycznia 2010 Autor Udostępnij Opublikowano 19 Stycznia 2010 Dzięki, trzeba było tylko zmienić na random(4) bo tak to tylko w prawo i lewo się odbijał i w górę. 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ę