Erstes Objekt bei Collisiosnlinie

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Erstes Objekt bei Collisiosnlinie

    Hi,
    Ich schreibe gerade an einem Game wo sich der Protagonist "teleportieren" kann in die aktuelle direction.
    Ein normaler Sprung bewegt den Helden 64px in die aktuelle Richtung.
    Jeder Sprung wird vorher geprüft, wenn in der 64px Reichweite ein Objekt auftaucht, so wird der Protagonist
    vor das Objekt teleportiert. DIes prüfe ich mit dem Collisionsrechteckt, danach zieh ich die X/Y Werte vom kollidiertem Objekt dem Protagonisten
    hinzu bzw. ab, sodass er vor dem Objekt landet, anstatt dahinter, oder dadrin...
    Dies klappt auch, aber das Problem ist das die Collisionslinie die ID des nächsten Objekts am anderen Ende ses Rechtecks ausgibt.
    Bedeutet: Wenn mehrere Objekte (Wand) hintereinander stehen und die Collisionslinie so fällt (der Protagonist recht nah ist), dass die ID
    des hinteren Objekts ausgegeben wird, so wird der Protagonist nicht zum ersten Objekt der Wand teleportiert sondern IN das erste Objekt rein, VOR das zweite Objekt ! Er soll aber, egal wie viele Objekte vor ihm sind bzw. wie nah er ist IMMER VOR das ERSTE Objekt springen.

    Die theoretische Sprungreichweite, soll eben nicht die praktische sein.

    Eine kleine Veranschaulichung {O ist der Protagonist, X ist ein Objekt, ---> ist das Collisionsrechteck bzw. die theoretische Sprungreichweite)
    O----X--> (Protagonist kann nicht über Objekt X springen) also: OX
    O--XX-> daraus wird leider: XOX, anstatt OXX

    ich bräuchte also eine Funktion, die das ERSTE Objekt ausgibt, was von der Collisionslinie getroffen wird :) und zwar nur das ERSTE!

    Ich hoffe ich hab mich verständlich ausgedrückt :) MFG und Danke für jegliche Antwort und Mühe :)
    Wie viele von euch wissen, dass Rot und Grün Gelb ergibt?
  • Habs jetzt mit 4 Schleifen gelöst die in 16ner Schritten alles abchecken und beim ersten antreffen die ID zurück geben etc.
    Wollte es aber schöner lösen, dachte es geht einfacher, das Problem ist das es recht viel Speicher verbraucht da die die ganze Zeit durchlaufen(ich bin sparsam^^).

    -> Wenn jemand eine einfachere Lösung findet würd ich mich enorm freien ;)
    thx mfg ;D
    Wie viele von euch wissen, dass Rot und Grün Gelb ergibt?