C++ allegro myslący przeciwnicy.
Ostatnio zmodyfikowano 2010-03-06 18:27
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. |
|
maniek099 |
» 2010-03-06 17:10:57 Podaj swój kod wtedy zobaczymy co i jak:), ale wszystko opiera się na warunku if. np. 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:) |
|
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:) |
|
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:-) |
|
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ą). |
|
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. |
|
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:) |
|
szyx_yankez |
» 2010-03-06 18:11:41 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). |
|
« 1 » 2 |