abprallen, nicht hängen bleiben!

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

  • abprallen, nicht hängen bleiben!

    hallo hab noch ein kleines problem:

    man fliegt gegen einen gummiblock wo man abprallen soll (bounce, speed=speed/2)
    okay
    aber da das flugobject nicht rund ist sonder länglich, kann es passieren das man in dem block hängen bleibt, wenn man knapp neben dem block ist und das flugobjekt dreht ,sodas sich das längliche objekt in den block hineindreht und man stecken bleibt.

    hoffe ihr wisst was ich meine...

    mfg
  • Du willst also verhindern, dass das FO sich dreht wenn kein Platz zum drehen da ist oder?

    In dem Moment wo du das FO drehen willst müsstest du vorher also nur prüfen ob irgendwo in der umgebung blockierende Objekte sind.
    Mit collision_circle könnte das gehen, wenn du den Kreismittelpunkt ins Zentrum deines FO legst.
    Wenn dein FO rechteckig ist musst du als Zentrum nur den Diagonalenschnittpunkt waehlen und als Radius die Hälfte der längeren Seite deines FO.
    Ok mir fällt grad ein du könntest auch einfach die Mittelpunktskoordinaten des Kreises hardcoden wenn du sie dir aus dem Spritefenster ausliest, da musste einfach nur auf Center klicken und dir dann die differenzen für x/y merken :D

    Wenn du nur 90° Drehungen machst reicht auch ein Quadratisches collision_rectangle mit der Seitenlänge der längeren Seite deines FO.

    Ich hoff mal ich hab dich jetzt auch richtig verstanden o.o
  • okay danke das sollte funtkionieren, allerdings ist es nicht sehr effektiv da man sich dann teiweise nicht mehr drehen kann.
    gäbe es nicht eine möglichkeit zu prüfen ob nach dem step in dem man sich dreht geprüft wird ob es zu einer collision kommt, praktisch: if "next step" there is a collsion blabla...
  • nene es ist sehr wichtig in dem spiel das die mask dem flugobjekt entspricht, da es im spiel darum geht, keine wände zu berühren da man sonst stirbt...

    ..aber ich hb da so ne idee:
    man prüft ob eine collision mit dem block besteht, wenn ja, dann soll sich das FO in die gegengesetzte richtung zum block ca. 5 pixel weit bewegen damit es keine collision mehr hat.
    Müsste doch funtkionieren oder?

    mfg
  • Eine Frage stellt sich mir da:
    Entschuldige, wenn ich das falsch verstehe aber wenn man sterben soll wenn man die Wand berührt, dann ist es doch sinnlos, mit dem code zu verhindern, dass eben dies passiert... oder? :huh:

    MfG Waterman7
  • Warum willst du das denn abfragen? Das erschließt sich mir nicht ganz... zudem kann der GM sowieso nicht in die Zukunft gucken o.o

    Was du machen kannst ist in doppelter Bewegungsdistanz nach einer Kollision zu prüfen. Dann weißt du ob das Objekt nach 2 Bewegungsschritten irgendwo kollidieren würde.

    Aber so ganz versteh ich dein Problem noch nicht. Du hast 2 Lösungen bekommen und beide funktionieren prima, aber irgendwie reden wir wohl an deinem Problem vorbei. Mal doch einfach mal schnell mit Paint nen Bild oder mal dir nen Struktogramm damit du überhaupt mal genau weißt was passieren soll und was nicht, so kannst du das Problem besser analysieren :x
  • Benutzer online 1

    1 Besucher