Objekt verfolg nicht mit richtiger direction.

  • GM 8
  • Objekt verfolg nicht mit richtiger direction.

    Hallo Zusammen.

    Ich hab mal wieder ein problem.
    Unzwar ein obj. soll den player verfolgen und die richtige direction haben.
    ALso hier mal die infos zu obj.monster
    Step Event:

    GML-Quellcode

    1. k=1
    2. if direction = 0 sprite_index=mushroom_r
    3. if direction = 180 sprite_index=mushroom_l
    4. if direction = 270 sprite_index=mushroom_d
    5. if direction = 90 sprite_index=mushroom_u
    6. if hp <0 then instance_destroy()
    7. if distance_to_object(player) <96
    8. {
    9. saw=true
    10. speed=4
    11. }
    12. else
    13. saw=false
    Alles anzeigen


    Und das im End step

    GML-Quellcode

    1. if saw=true
    2. {
    3. if player.direction = 0 then direction=180
    4. if player.direction = 180 then direction=0
    5. if player.direction = 270 then direction=270
    6. if player.direction = 90 then direction=270
    7. }

    Jedoch verfolg er mich nur wenn ich nach rechts laufe und nach unten.
    wenn ich nach oben laufe läuft er nach unten und das mit links dann nach rechts.
    Aber er soll die direction immer zum player haben das sich auch die sprites zu direction anfügen.
    Aber nich wenn ich zu ihn laufe das er vor mir weg läuft sondern zum mir mit der richtigen sprite.

    Ich hoffe ihr versteht mein problem.

    Tice
    :saint:
  • RE: Objekt verfolg nicht mit richtiger direction.

    Ich verstehe dich nicht.
    Du hast es doch selbst so eingestellt...

    Tice schrieb:


    if saw=true
    {
    if player.direction = 0 then direction=180
    if player.direction = 180 then direction=0 // Wenn der player nach links läuft ( direction = 180 ) dann läuft der Pilz nach rechts ( direction = 0 )
    if player.direction = 270 then direction=270
    if player.direction = 90 then direction=270 // Wenn der player nach oben läuft ( direction = 90 ) dann läuft der Pilz nach unten ( direction = 270 )
    }



    Du solltest dir mal ansehen, welche direction , welche Richtung ist:



    MfG xxskxx
    -
  • 1. Das End-Step - Event verkürzen

    GML-Quellcode

    1. if (saw == 1) {
    2. direction = player.direction;
    3. }


    Wenn er sich dein Player diagonal bewegt, dann wird das Sprite nicht geändert,weil die direction weder 0, 90, 180, 270 ist.
    Daher musst du entweder auf image_angle wechseln.
    Oder falls du nur 4 Sprites hast, sollte sich der Player in einem grid bewegen.

    MfG xxskxx
    -
  • xxskxx schrieb:

    1. Das End-Step - Event verkürzen

    GML-Quellcode

    1. if (saw == 1) {
    2. direction = player.direction;
    3. }


    Wenn er sich dein Player diagonal bewegt, dann wird das Sprite nicht geändert,weil die direction weder 0, 90, 180, 270 ist.
    Daher musst du entweder auf image_angle wechseln.
    Oder falls du nur 4 Sprites hast, sollte sich der Player in einem grid bewegen.

    MfG xxskxx
    Ja das ist ja wieder falsch weil wenn ich die direction 180 habe hat er auch die direction 180
    hab ich aber die direction 0 hat er auch die direction 0 und flieht sozusagen von mir.
    :saint:
  • Tice schrieb:

    Ja das ist ja wieder falsch weil wenn ich die direction 180 habe hat er auch die direction 180
    hab ich aber die direction 0 hat er auch die direction 0 und flieht sozusagen von mir.


    ahh stimmt ... Fehler von mir. Sorry

    Ich meinte

    GML-Quellcode

    1. direction = point_direction(x,y,player.x,player.y);


    Aber die Lösung von J@kob ist natürlich einfacher ;)

    MfG xxskxx
    -
  • Benutzer online 1

    1 Besucher