[Allegro C++] Respiący się przeciwnicy
Ostatnio zmodyfikowano 2012-08-18 12:52
hakr1921 Temat założony przez niniejszego użytkownika |
[Allegro C++] Respiący się przeciwnicy » 2012-08-15 22:11:09 A więc tak, moja gra jest już praktycznie gotowa [ no jeszcze tylko menu ale to jest banalne ;P ]. Zostało mi tylko dokończyć system przeciwników, czyli inteligentne poruszanie oraz respienie się.
Na pierwsze 30 minut zadowoliłem się moim pomysłem z strukturą potwora, potwory się tworzyły i tworzyły, ale to co napisałem wydaję mi się jakoś głupie i debilne.
Możecie mi napisać jak wy zaprogramowalibyście takie respienie się przeciwników w coraz większej ilości? Ewentualnie mogą być jakieś przykłady kodu z gier, jak to woli.
Z góry dzięki i sory że po raz 20 zakładam temat z duperelami |
|
anonim |
» 2012-08-15 22:20:30 W allegro nie robiłem, ale ogólnie schemat jest chyba taki: robisz vector i kiedy chcesz 'zrespić' przeciwnika, to wstawiasz nowy element na vector (chyba metoda push_back, ale nie pamietam dokładnie), edytujesz dane tego elementu (np: położenie, pixmapę itd) i na koniec wyświetlasz |
|
kamillo121 |
» 2012-08-15 22:26:18 Wyznaczasz punkty w których może się tworzyć przeciwnik(najlepiej oprogramować tworzenie obszarów dzięki czemu będzie mniej roboty i mniej pamięci potrzebnej). Następnie tworzysz kolejkę utworzonych przeciwników z id i obszarem(id do sprawdzenia gdzie aktualnie znajduje się przeciwnik i obszar w którym został stworzony). Teraz przy tworzeniu nowych przeciwników analizujesz za każdym razem kolejkę i wyliczasz gdzie będzie najlepiej go umieścić(np najmniej uczęszczane miejsce + najdalej oddalone od np najczęściej występującego obszaru, wszystko można dopasowywać parametrami w zależności od tego ilu ma się ich tworzyć i na jak dużym obszarze).
Jak dla mnie tak najprościej można to zrobić. |
|
hakr1921 Temat założony przez niniejszego użytkownika |
» 2012-08-15 23:37:58 Hmm, mam nadzieje że sobie poradzę chodź nigdy nie umiałem ogarniać dobrze vektorów |
|
kamillo121 |
» 2012-08-15 23:40:58 Jeżeli nie przepadasz za vectorem to zakoduj(bądź użyj gotowej) prostą listę dwukierunkową i też będzie. Żadnych operacji prócz przechodzenia po elementach ci raczej nie potrzeba. |
|
RazzorFlame |
» 2012-08-18 12:52:38 Hmm, zrób vector z przeciwnikami. Kazdy przeciwnik powinien mieć swoj timer ktory okresla po jakim czasie ma sie respić. Przy deadzie potworka musisz zresetować timer i od tego czasu liczyć ten czas. |
|
« 1 » |