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

[Allegro C++] Respiący się przeciwnicy

Ostatnio zmodyfikowano 2012-08-18 12:52
Autor Wiadomość
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
P-62615
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
P-62618
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ć.
P-62619
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
P-62625
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.
P-62626
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.
P-62836
« 1 »
  Strona 1 z 1