ChuChuRocket - Actor rotation problem

  • Neues Jahr, neue Fragen.


    Ich arbeite derzeit an einem ChuChu Rocket Klon. Wer mal einen Dreamcast hatte, weiß bescheid.


    Das Prinzip ist ziemlich einfach. Die "Mäuse" laufen in diesem Knobelspiel immer der Nase nach, bis sie auf eine Wand treffen. Dann biegen diese um 90 Grad nach rechts ab und wuseln weiter.

    Klappt bis hierhin wunderbar, Linetrace, set world rotation, fertig.


    Zweiter Part des Spiels ist etwas komplizierter umzusetzen. Der Spieler kann Felder mit Pfeilen (links, rechts, oben, unten) auf dem Spielfeld platzieren. Entsprechend der Pfeilrichtung laufen dann auch die Mäuse weiter. Daraus ergeben sich nun zwei Probleme.


    Pfeilfelder:


    1. Mittels Collision Box und Actor/Component Begin Overlap habe ich das Problem, dass nicht alle Mäuschen den Richtungswechsel wahrnehmen. Zwischendurch läuft gerne meine eine gerade aus weiter. Warum, keine Ahnung.


    2. Das Spielfeld besteht aus quadratischen Feldern. Sprich die Laufwege sind was die Breite angeht sehr begrenzt. Mit dem Linetrace ist das kein Problem. Größe des Feldes / 2 ist dementsprechend die Länge des Linetrace. So schaffe ich es recht gut, dass die Mäuse in der Mitte der Bahn bleiben. Aber wie mache ich das bei den "Pfeil- Feldern"?


    Collision Box über die komplette Größe der Kachel und die Maus biegt beim ersten Kontakt ab und ist nicht mehr mittig der Laufstrecke. Ein Delay dazu funktioniert oftmals auch nicht so richtig. Collider kleiner machen und in die Mitte? Auch schlecht, da die Maus ca die Größe der Kachel hat.


    Vielleicht hat ja jemand einen guten Einfall.

    Danke schon mal im Voraus.

  • 1. Kein Plan. Debugging. Wenn es zur Laufzeit im BP zu schwer ersichtlich ist - des armen mannes Debugging ist der "Print String". So kannst du hinter die overlap actions ein Print string "Overlap Hinderniss 1" machen. oder so. Immer da wo du vermutest dass was schiefgeht. DU kannst auch Variablen, Koordinaten usw mit Print String schmeissen.


    2. Kannst ja vor dem Richtungswechsel ein "Move actor" machen. Logischerweise genau zur Mitte der Kachel hin...Teleport sieht ungelenk aus - geht aber offensichtlich schnell. Ansonsten kannst du ja nach dem Overlap auch nen loop lostreten der checkt ob die Maus Position "nah genug" an der Mitte ist bevor sie umgelenkt wird. Notfalls auch on tick, obwohl ich wg Performance immer versuche on Tick möglichst nicht zu nutzen. Aber bei dem game wird der Rechner wohl nicht in die Knie gehen solange du nicht 10 Millionen Mäuse spawnst.

  • Danke für die Antwort. Ich kümmere mich heute mal um den Richtungswechsel. Mir schwebt da schon was vor. Mal schauen ob es klappt.


    Das mit dem Overlapping actor muss ich mir nochmal ansehen. Hatte schon viele Protitypen gebaut wo diese Funktion nicht richtig gearbeitet hat. Vielleicht nutze ich die auch einfach nur falsch...

  • Overlap funktioniert eigentlich immer. Setzt du vielleicht irgendwas exklusives bei begin Overlap was du dann bei End Overlap nicht mehr freigibst? Ansonsten check mal deine Collission settings, die müssen natürlich für alle beteiligten Actors Overlap unterstützen.