Physics Collision Shape

  • Allgemein

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

  • Physics Collision Shape

    Hallo,

    ich habe ein Problem bzw eine Frage bezüglich der Physics-Funktionen.
    Und zwar habe ich eine Platform erstellt, diese soll eine Collision Shape verwenden (so richtig ausgedrückt?).

    Ich habe "Use Physics" verwendet und die Punkte auf 0,14; 32,14; 32,18 und 0,18 eingestellt.



    Nun funktioniert diese nicht ordnungsgemäß. Denn der Ball ist auf der rechten Seite immer etwas zu weit rechts und
    collisiert trotzdem, obwohl dort eigentlich keine Collision stattfinden dürfte und links rutscht der Ball immer zu früh weg.
    Ich habe auch nichts an der Ausrichtung geändert, "Origin" ist überall 0,0.





    Wenn ich das via Code mache:

    GML-Quellcode

    1. var fix, inst;
    2. fix = physics_fixture_create();
    3. physics_fixture_set_polygon_shape(fix);
    4. physics_fixture_add_point(fix, 0, 14);
    5. physics_fixture_add_point(fix, 32, 14);
    6. physics_fixture_add_point(fix, 32, 18);
    7. physics_fixture_add_point(fix, 0, 18);
    8. inst = instance_create(x, y, Obj_Platform);
    9. physics_fixture_bind(fix, inst);
    10. physics_fixture_delete(fix);
    11. instance_destroy();
    Alles anzeigen


    kommt das gleiche bei raus. Der Code ist sogar manchmal komischerweise noch ungenauer als wenn man das über "USe Physics"
    macht, was ich eigenartig finde, da die Punkte ja die gleichen sind und auch in der gleichen Reihenfolge notiert wurden.

    Da wäre dann meine nächste Frage: Ist das normal und kann man das evtl. richtig ausrichten lassen?

    Mein Ziel ist es, dass der Ball auf glatten Instanzen "sitzen bleibt" und auf schrägen sauber runterruscht, ohne jegliche
    Kollisionsfehler oder ruckelartige Rutschbewegungen.

    Ich freue mich auf eure Hilfe!

    Bis dahin bleibe ich mit freundlichen Grüßen
    icqgamer
  • Ich beschäftige mich auch zurzeit mit der Physic Engine von Game Maker,

    ich hatte mal ein ähnliches Problem, das die Kollisionbox an einer anderen Stelle war als beabsichtigt,...

    weis nicht ob du die funktion kennst, aber mit physics_draw_debug();
    kannst du dir die Collisionsshapes deiner Objekte anzeigen lassen und somit herausfinden ob alles stimmt.

    Zu deinem Problem das die Origin bei 0,0 ist, kannst du mit
    physics_fixture_bind_ext(fixture, target,xoffset,yoffset) entgegen wirken,...

    ansonsten würde ich dir raten die Origin immer in die Mitte zu legen,...

    Grüßle Blayde