Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ allegro myslący przeciwnicy.

Ostatnio zmodyfikowano 2010-03-06 18:27
Autor Wiadomość
Bartaz
Temat założony przez niniejszego użytkownika
C++ allegro myslący przeciwnicy.
» 2010-03-06 17:00:14
Witam jak zrobic ze np jezeli odleglosc ludka do potwora jest mniejsza niz 30 to potwor zaczyna go np gonic.
P-14668
maniek099
» 2010-03-06 17:10:57
Podaj swój kod wtedy zobaczymy co i jak:), ale wszystko opiera się na warunku if. np.
C/C++
if( moj_ludek_x + 30 < przeciwnik_x )
     przeciwnik_x--;
i tak dalej dla każdego przeciwnika i każdej współrzędnej. Metoda prób i błędów + upór zawsze skutkuje:)
P-14669
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-06 17:17:10
Ale ja narazie zadnego kodu nie mam.. bo nie bede pisac czegos czego nie wiem.
A potwor nie ma se tylko przesuwac tylko "myslec" tak zeby złapac tego ludka:)
P-14670
maniek099
» 2010-03-06 17:25:06
W takim wypadku ciężko będzie Ci pomóc, ponieważ musiałby ktoś wiedzieć co Ty konkretnie chcesz zrobić i co konkretnie umiesz a to raczej mało prawdopodobne. Pomyśl na czym dokładnie ma polegać Twoja gra i zacznij pisać już to co umiesz (wyświetlanie i poruszanie postaci czy coś w tym stylu) i wtedy zgłoś się ze swoim kodem i pomożemy:-)
P-14671
WunM
» 2010-03-06 17:25:14
Po prostu napisać odpowiedzialny za to kod. Mnogość rozwiązań jest rozległa. Chyba nie skłamię mówiąc, że nie zastanawiałeś się wcześniej wystarczająco długo i skierowałeś pytanie na to forum.

No, ale dobra. Twój problem to:

1) Określenie odległości przeciwnika
2) 'Pościg' za nim

Ad.1

Dysponując pozycją dwóch graczy (przeciwnika i gracza) w odniesieniu do tego samego układu współrzędnych możemy łatwo określić odległość. Ale to jest takie oczywiste, że nie będę tego powtarzał (no dobra już powtórzyłem)

Ad.2

Żadne AI nie jest potrzebne. W najlepszym przypadku należy powtarzać ruchy gracza. Jeżeli jest to niemożliwe (są inne obiekty z którymi może nastąpić kolizja) można po prostu:

1.- Pobrać aktualną pozycję gracza jako cel
2.- Dążyć (iść) do celu

Po dokładnym przyjrzeniu się temu problemowi można stwierdzić:

* Nie jest trudny
* Najlepiej rozłożyć (podzielić) na podproblemy (zadania)

I wracając do pierwszych słów mojego posta: nie rzucaj problemów, nad którymi się nie zastanowiłeś wystarczająco długo, zrób to tylko wtedy gdy jest on na tyle trudny i złożony, że sam nie dajesz sobie z nim rady (ale nie z tego powodu że nie chciało ci się samemu pomyśleć!). Tak po za tym na tym (i innych) forum było tak wiele podobnych tematów i znalazło się tak wiele przeróżnych odpowiedzi, że ten temat można uznać za spam (łącznie z moją wypowiedzią).
P-14672
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-06 17:33:06
Chodzi mi poprostu oto aby potwor gonil ludka reszte sam sobie napisze...
Chcialem zrobic tak ze potwor bedzie powatarzal ruchy ludak i do swojej predkosi dodawal 1 zeby mogl go dogonic ale wystarczy ze ludek sie zaczyma to potwor tez.
P-14674
maniek099
» 2010-03-06 17:51:19
Też WunM Ci napisał, trzeba sczytywać pozycję gracza i przesuwać przeciwnika dopóki nie osiągnie tej pozycji (lub nie stanie się coś innego co tam sobie wymyślisz). Powodzenia i jak coś to pisz:)
P-14675
szyx_yankez
» 2010-03-06 18:11:41
C/C++
if( ludekx - 10 > wrogx ) wrogx++;

if( ludekx + 10 < wrogx ) wrogx--;

if( ludeky - 10 > wrogy ) wrogy++;

if( ludeky + 10 < wrogy ) wrogy--;

Łatwe i proste przeciwnik najpierw będzie gonił gracza gdy go dogoni będzie zawsze 10 px od gracza(zatrzymał się koło nie go).
P-14677
« 1 » 2
  Strona 1 z 2 Następna strona