Maske für Collision drehen?

  • GM 8

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

  • Maske für Collision drehen?

    Normaler weise ist ja wenn man keine Maske einstellt, der Aktuelle Sprite einer Instance die Maske.

    So wenn man aber nun das Draw-Event nimmt ist ja bekanntlich der Sprit nicht mehr sicht bar. Soweit nix neues.

    Hier meine aktuelle Situation.
    Ein schiff dreht auf dem Meeh und den Sprite las ich mit draw_sprite_ext und dessen direction drehen.
    Wenn das schiff beschossen wird haut aber nicht immer die Kolision hin, wenn die Geschosse einschlagen.

    Nun hab ich herumversucht da ja auch bekantlich sehr schnelle geschosse ab und zu mal nicht einschlagen.
    Wie dem auch sein. hab ich im Step event mal das Drag & Drop event "Transform Sprite"Angle=Direction eingesetz.
    Seit dem geht es ganz gut.

    Was mich nun zu meiner eigentlichen Frage Bringt. Muss ich das, durch das Draw-Event nicht mehr sichtbar "Sprite_index" trozdem mit dem Schiff drehen.
    Wenn ja wäre das sehr merkwürdig. Da es anscheind aber funktioniert.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • x-sascha schrieb:

    Was mich nun zu meiner eigentlichen Frage Bringt. Muss ich das, durch das Draw-Event nicht mehr sichtbar "Sprite_index" trozdem mit dem Schiff drehen.
    Wenn ja wäre das sehr merkwürdig. Da es anscheind aber funktioniert.

    Ja, wenn du es als Maske benötigst.
    Wenn du für die "image_angle" nicht für den gedrawte Sprite als rot verwendest ändert sich die Kollisionsmaske nicht.
    Dein Code müsste dann etwa so aussehen:

    GML-Quellcode

    1. draw_sprite_ext(spr_ship,-1,x,y,image_xscale,image_yscale,var_rot,c_white,image_alpha)

    Verwendest du allerding die "image_angle"-Objektvariable unter dem Punkt "rot" bei draw_sprite_ext dreht sich die Maske mit dem gedrawten Sprite mit, da die Objektsprite- und Masken-Rotation an "image_angle" geknüpft ist.

    GML-Quellcode

    1. draw_sprite_ext(spr_ship,-1,x,y,image_xscale,image_yscale,image_angle,c_white,image_alpha)
  • Ok danke für die Bestätigung. Da benutzt nam den Gamemaker schon seit Jahren und ist trozem immer wieder Verblüft über solche kleinigkeiten. Rückwirkend erklärt das so einiege Fehler die ich hatte.
    Ein große LOL :)
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Benutzer online 1

    1 Besucher