Kollission mit gestrecktem Sprite = freeze

  • GM 8

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

  • Kollission mit gestrecktem Sprite = freeze

    Hallo Leute! Erneut habe ich ein Problem mit dem Game Maker.
    Ich arbeite an einem simplen 3D Game bei dem Sprites zur Kollissionsüberprüfung benutzt werden.

    Dabei soll es verschiedene "blockgrößen" geben. Um aver die Ressourcen zu schonen, erstelle ich nicht für jede Blockgröße ein eigenes Objekt.
    Ich erstelle im Spiel jedesmal das gleiche "Block" objekt, an den nur die Parameter für die größen in x und y richtung übergeben werden. Damit hat jeder Block eine eigene größe obwohl es das selbe grund-objekt ist.
    Nun, damit die Kollission an die größe des Blocks angepasst wird, habe ich ein 1 pixel großes Basis kollission Sprite. Dieses wird immer mit den größenparametern mit image_xscale und image_yscale gestreckt un dem 3D Objekt angepasst.

    um nun zu dem eigentlichen Problem zu kommen:

    Bei einer einfachen kollission (sei es nun place_free oder place_meeting) ist das Spiel einfach "eingefreezt". Ich konnte es nur noch per Taskmanager beenden. Ich habe alles im Game überprüft. Es gibt keine endlosschleifen oder ähnliches die das Verursachen konnten. Später kam ich drauf das die Streckung des Kollissions Sprites mit imagex- und image_yscale dies verursacht hat. Anscheinend gibt es ein eigenartiges "Problem" im GM wenn man ein Sprite skaliert und es dann zur Kollissionsprüfung benutzt.

    Als ich das Sprite einfach gegen ein größeres ausgetauscht habe und es NICHT skaliert habe, verlief die Kollission einwandfrei. es kam kein freeze oder sonst irgendein Problem.
    Kennt jemand diesen "Bug"?

    Wie könnte ich ein Sprite noch auf eine andere weise skalieren/vergrößern um es an die höhe und Breite der Blöcke anzupassen?
  • Also ich habe volgendes versucht:

    Das normale 1pixel Sprite das ich normalerweise skaliere, habe ich gegen ein 300 x 300 pixel sprite ausgetauscht. Im Spiel habe ich es sicherheitshalber nicht skaliert, und siehe da: es funktioniert. Sobald ich das Sprite aber skaliere, freezt das Game ein.
    precise kollission checking war aktiviert. Aber selbst nach dem deaktivieren freezt es immernoch.
    Das verändern der größe des Basis Kollissions Sprites von 1 px² auf 4 px² hat auch nichts gebracht. Der freeze findet immernoch statt.
  • Benutzer online 1

    1 Besucher