Ein Objekt auf den Koordinaten eine gederehten Sprite erstellen...

  • GM 8

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

  • Ein Objekt auf den Koordinaten eine gederehten Sprite erstellen...

    Ich habe bei meinem 2d Jump'n'Run Spiel eine Waffe, die der Spieler in der Hand hält... (siehe Screenshots). Die Waffe wird mit

    GML-Quellcode

    1. image_angle=point_direction(x,y,mouse_x,mouse_y)


    gedreht. Wenn geschossen wird, wird ein Objekt obj_bullet an der Position obj_player.x und obj_player.y erstellt. obj_bullet fliegt sich natürlich zur Maus.
    Ich habe bei meinem Spiel auch eine SlowMotion Funktion eingebaut, doch in der Zeitlupe sieht man deutlich, dass die Kugel aus dem Spieler und nicht aus der Waffe kommt (Die Waffe ist übrigens ein eigenes Objekt und nimmt ständig die Position des Spielers an). Wie mache ich es, dass ein Punkt auf der gedrehten Sprite der Waffe berechnet wird, und dass die Kugel dort created wird und nicht beim Spieler?

    PS: auf den Screenshots sieht man hoffentlich einigermaßen, was ich meine.

    MfG FlashXenon
    Bilder
    • screenshot100.png

      40,7 kB, 1.024×768, 164 mal angesehen
    • screenshot101.png

      41,74 kB, 1.024×768, 150 mal angesehen
    • screenshot102.png

      72,99 kB, 1.024×768, 139 mal angesehen
    • screenshot103.png

      19,16 kB, 1.024×768, 147 mal angesehen
    • screenshot104.png

      19,15 kB, 1.024×768, 194 mal angesehen
  • Das geht mit:

    GML-Quellcode

    1. x += lengthdir_x(länge_deiner_waffe, image_angle);
    2. y += lengthdir_y(länge_deiner_waffe, image_angle);


    Füg es im Step-Event deiner Waffe ein.

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • lengthdir_x() und lengthdir_y() sollte dir helfen die x und y Koordinate der Pistolenmündung zu berechnen.

    EDIT: Zu spät.
    Allerdings wüsst ich nicht, was der Code von Trixt0r im Stepevent verloren hat. Der gehört eher ins Createevent, wenn man die Kugel an der Playerposition created.
  • TrunX schrieb:


    lengthdir_x() und lengthdir_y() sollte dir helfen die x und y Koordinate der Pistolenmündung zu berechnen.
    Danke, hab jetzt den Code von Trixt0r wie du gesagt hast ins step event der Kugel getan. Irgendwie ist es jetzt aber ziemlich nach rechts versetzt...
    Die Kugel startet jetzt von der Richtung der Pistolenmündung und fliegt zur Maus... siehe Screenshot. ?(
    Bilder
    • screenshot105.png

      48,15 kB, 1.024×768, 160 mal angesehen
  • Oha, ich dachte du wolltest die Waffe auch um einen Punkt mit einer bestimmten Länge drehen. Aber wenn du deine Kugel erstellst, dann sollst du lengthdir_x und lengthdir_y nicht ins Step-Event setzen, sondern ins Create-Event der Kugel, sowie TrunX es gesagt hat.
    Ich gehe mal davon aus, dass du die Kugel im Global Left Mouse Button-Event erstellst. Dann mach lieber folgendes:

    GML-Quellcode

    1. instance_create(x+lengthdir_x(länge_deiner_waffe, obj_waffe.image_angle),y+lengthdir_y(länge_deiner_waffe, obj_waffe.image_angle), obj_kugel);

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Benutzer online 1

    1 Besucher