Halbe sprite drehen

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

  • Halbe sprite drehen

    Hi

    ich mache grade einen shooter, in 2d, von der seite.

    Jetzt wil ich machen, das sich der spieler am besten immer nach links dreht wenn ich "a" drücke und nach rechts wenn ich "d" drücke(ohne nochmal 100 neue sprites zu erstellen bitte)

    Außerdem, soll die waffe mit Oberkörper(oberer Teil) zur maus schauen, wobei der unterkörper waagerecht am boden bleiben soll, wie mache ich das?

    Also es soll sich nur ne halbe sprite zur maus drehen, und die andere am boden bleiben.(da will ich wenn möglich auch nicht nochmal 100 neue sprites erstellen)
  • Ganz einfach, du brauchst 2 Objekte:
    -Objekt Player
    -Objekt Gun

    In das Step Event von Gun schreibst du, dass es immer an die Position von Player springt:

    GML-Quellcode

    1. x=player.x
    2. y=player.y

    Wahrscheinlich ist es aber so, dass die Waffe jetzt noch nicht so sitzt wie du willst. Um das zu ändern, addier einfach zu den Werten noch die passenden Werte dazu, bis es passt, z.B.:

    GML-Quellcode

    1. x=player.x+4
    2. y=player.y+10


    Um die Waffe immer zur Maus zu drehen kommt noch diese Zeile ins Step Event:

    GML-Quellcode

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

    image_angle ist die Richtung vom Sprite
    point_direction gibt die Richtung an, in die es sich drehen müsste um von x,y genau zu mouse_x,mouse_y zu schauen.

    Das wäre dann die Waffe.

    Um die Richtung beim Player zu ändern könntest du z.B.folgendes machen:

    GML-Quellcode

    1. if(keyboard_check(ord("A")))
    2. {
    3. x-=10;
    4. image_xscale=-1
    5. }
    6. if(keyboard_check(ord("D")))
    7. {
    8. x+=10;
    9. image_xscale=1
    10. }
    Alles anzeigen


    Wenn du image_xscale den Wert -1 eingibst wird er gespiegelt, d.h. wenn er also standartmäßig nach rechts schaut, musst du beim nach links gehen den image_xscale Wert -1 geben und beim nach rechts gehen dann natürlich wieder zurück auf 1.
  • Benutzer online 2

    2 Besucher