Einheiten überlappen im Strategiespiel



  • Hi,

    ich habe vor kurzem angefangen, ein Strategispiel zu programmieren.
    Das geht bis jetzt auch schon ganz gut.

    Bis jetzt erscheinen Einheiten auf dem Bildschirm, ich kann sie durch Gedrückthalten der Maus auswählen und sie bewegen.

    Wenn ich nun aber mehrere Einheiten gleichzeitig wähle und bewege, befinden sie sich danach an ein und derselben Stelle, das heißt ich kann sie nicht mehr einzeln auswählen.

    Also müsste ich eine Kollisionsabfrage bauen, aber das für alle Einheiten mit jeder anderen immer wieder überprüfen? Und was soll passieren, wenn sich zwei auf Kollisionskurs befinden?
    Wenn ich sie warten lasse, bis der Weg frei ist, bleiben einfach beide stehen.
    Was soll ich also machen und wie?

    Falls Code - Beispiele benötigt werden bitte sagen.

    mfg
    Jakel

    /Edit: Ich habe diesen Thread bewusst ins VCL Forum geschrieben, da, falls ich Code Beispiele posten soll, es eindeutig hierher gehört, also bitte nicht verschieben 😉



  • das gehört eher ins Glaskugel Forum.



  • Zuerst einmal mußt du selbst festlegen, ob generell mehrere Einheiten auf einem Feld temporär sein dürfen (durcheinander laufen können).
    Wenn ja, dann mußt du halt nur an der Endposition die Einheiten wieder auf ein benachbartes freies Feld bewegen.
    Wenn nein, dann mußt du jedes Feld auf dem eine Einheit steht als besetzt markieren und deine Wegsuche muß sich einen neuen Weg suchen (dies kann aber auch zu ungewollten Umgehen von temp. Hindernissen werden).

    Welchen Wegsuche-Algorithmus verwendest du denn, oder hast du noch keinen?
    Dann empfehle ich dir den A*.


Anmelden zum Antworten