ALT Opublikowano 15 Sierpnia 2012 Udostępnij Opublikowano 15 Sierpnia 2012 Moja testowa plansza (tablica) wygląda tak: int lvl[11][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1}, {1,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, }; To jest kod który porusza potworkami (Poprzedni działał poprawnie ale musiałem wtedy dużo zmiennych narąbać) void setmove() { int a; int b; int hyp=0; for (a=0;a<11;a++)//y { for (b=0;b<20;b++)//x { if (lvl[a][b]==2) { if (a==y+1 or a==y+2 or a==y+3 or a==y+4) { if(lvl[a+1][b]==0) { lvl[a][b]=0; lvl[a+1][b]=2; } } else if (a==y-1 or a==y-2 or a==y-3 or a==y-4) { if(lvl[a-1][b]==0) { lvl[a][b]=0; lvl[a-1][b]=2; } } else if (b==x+1 or b==x+2 or b==x+3 or b==x+4) { if(lvl[a][b+1]==0) { lvl[a][b]=0; lvl[a][b+1]=2; } } else if (b==x-1 or b==x-2 or b==x-3 or b==x-4) { if(lvl[a][b-1]==0) { lvl[a][b]=0; lvl[a][b-1]=2; } } } } } } Działa on co klik klawisza. Tera pytanie, co w nim źle zrobiłem że wrogowie się oddalają i teleportują ? Plansza jest przedstawiona na tablicy, mam kod który ją zamienia na "rysunek" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Floodnik Opublikowano 15 Sierpnia 2012 Udostępnij Opublikowano 15 Sierpnia 2012 Zakładam, że x, y to współrzędne gracza? Oddalają się, bo tak ich zaprogramowałeś. Na przykładzie pierwszego ifa: if (a==y+1 or a==y+2 or a==y+3 or a==y+4) ... lvl[a][b]=0; lvl[a+1][b]=2; Jeśli npc jest przesunięty od gracza o 1/2/3/4 poziomy w dół(a==y+1 itd.), to npc przesuwa się o 1 poziom w dół(lvl[a+1]=2)... Czyli jeszcze bardziej się oddala. A teleportują się dlatego, że wykonujesz pętlę. Za każdym razem, kiedy powyższe warunki są spełnione, npc porusza się. Dajesz im taką możliwość kilka razy w ciągu wykonywania funkcji setmove()... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 15 Sierpnia 2012 Autor Udostępnij Opublikowano 15 Sierpnia 2012 O patrz dzięki, jak będę w domu to sprawdze czy już wszystko działa dobrze 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ę