Hi,
Ich habe ein größeres Problem. derzeit programmiere ich an einem 2D Fussball Spiel und bin nun mit den grundlagen durch. Jetzt geht es daran die KI für die computer gesteuerten Spieler zu schreiben. Hier bin ich jetzt soweit, das der KI gesteuerte Gegner guckt wo der ball ist, daraus ein winkel, und aus dem winkel wiederrum eine richtung errechnet in die er gehen muss um den Ball zu kriegen. Soweit noch kein so großer problem.
Jetzt muss der KI Spieler aber gucken ob in der Richtung, in die er gehen will nicht schon ein anderer Spieler ist.
Bei der normalen Kollision, bei der nur überprüft wird ob ein anderer Spieler direkt vor einem ist, oder man an einer wand steht ist es relativ einfach. Ich berechne die Koordinaten an denen der Spieler wäre, wenn er vorwärts ginge, und gucke ob er dann auf einem anderen Spieler "drauf" wäre. Ist dies der fall darf man halt nicht gehen, sonst darf man es.
Hier ist es jetzt aber schwieriger, weil ich nach vorne schauen muss. Könnte der Spieler nur nach rechts und links, oben und unten gehen, wärs auch einfach, aber der spieler kann halt in jede Richtung gehen (bzw. in 60 verschiedene, irgendwo muss ja eine Grenze sein).
Hier mal ein Bild: die graue Zone ist die die frei sein muss, damit der spieler gehen kann. Ist jemand in dieser zone drin, oder grenzt an diese an, soll die ki solange die richtung verändern bis die graue Zone frei ist und sich dann dem Ball wieder annähern.
http://img20.imageshack.us/img20/6623/bild1sh.jpg
Hat vielleicht jemand eine Idee wie ich das überprüfen könnte. Ich hatte schon ein paar ideen aber irgendwie wär das zu aufwenig. Zum Beispiel hatte ich mir gedacht ich mache endlich viele kleine Schritte mit dem Spieler und gucke ob ich kollidieren würde. wenn das nicht passiert ist der weg frei, wenn doch wird die richtung geändert und wieder überprüft. Dafür müsste ich aber jedesmal den Spieler mit allen anderen Spielern verrgleichen und das in mehreren positionen. Das wär einfach zu viel.
Wär super wenn mir jemand helfen könnte.
danke im vorraus