move_towards_point in 4 Directions (sieht ein wenig verstörend aus)

  • GM 8
  • move_towards_point in 4 Directions (sieht ein wenig verstörend aus)

    Hallo Community,

    ich habe ein Objekt erstellt!
    aufgabe: Spieler verfolgen, aber nur mit 4 Directions

    Mein jetziger Code:

    Create/Alarm[0]

    GML-Quellcode

    1. hspeed = 0;
    2. vspeed = 0;
    3. if abs(x-target.x)
    4. if abs(y-target.y)
    5. if irandom(1)
    6. hspeed = sign(target.x-x)*5
    7. else
    8. vspeed = sign(target.y-y)*5
    9. else
    10. hspeed = sign(target.x-x)*5
    11. else
    12. vspeed = sign(target.y - y)*5
    13. alarm[0] = 16/5;
    Alles anzeigen


    obj_target befindet sich immer an der position des Spielers. (noch)

    Nur sieht das ergebnis manchmal recht verstörend aus!

    1. Mir ist klar das das Objekt nicht durch Solide gegenstände gehen kann sprich wenn der Spieler gegenüber einer Wand istz, kann das Objekt nicht rüber, aber mit mp_potential_step funzt das irgendwie auch nicht ?!

    2. Manchmal läuft das Objekt nur im Kreis rum und das sieht nicht gerade schick aus, auch wenn der Weg zum spieler frei ist ?!

    Gibt es lösungen zu 1 und 2 ?

    Ich habe hier noch 2 Bilder zu Problem 1 und 2:

    1:

    2:

    Ich hoffe mal das es lösungen gibt :B

    P.s. Bitte nicht schreiben -> google.com oder Google ist dein bester freund oder überhaupt was mit google.. ich hab schon gesucht und wenn einer mit einem Link kommt, dann hab ich das wohl übersehen :|

    P.s.s. Tut mir Leid wegen ein paar Rechtschreibfehlern und Grammatikalen fehlern :/

    - LG Nils

    EDIT: falls die Bilder nicht angezeigt werden:

    BILD1

    BILD2

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von McGamemake ()

  • Versuchs doch mal mit einem Grid, da du eh nur 4 Richtungen hast sollte das super Einfach gehen

    GML-Quellcode

    1. Random_path = path_add() // erstellt einen leeren Pfad
    2. Random_way = mp_grid_create(left,top,hcells,vcells,cellwidth,cellheight) // Erstellt ein Zellmuster auf dem sich der Spieler bewegt
    3. mp_grid_add_instances(Random_way,all,true) // Alle Hindernisse werden so angegeben
    4. mp_grid_path(Random_way,Random_path,x,y,x.target,y.target,0) // Erstellt einen Pfad der Hindernisse umgeht
    5. path_start(Random_path,speed,endaction,absolute) // Startet den erstellten Pfad
    6. mp_grid_destroy(Random_way) // löscht das Grid wenn es nicht mehr gebraucht wird
    Alles anzeigen



    So in etwa sollte es funktionieren,....
  • Boar das man euch immer alles Vorkauen muss :(
    In der GM - Hilfe steht doch alles super erklärt,....

    Also ich hab dir jetzt en Exampel gemacht, indem es wunderbar funktioniert,....

    Dort folgt der Gegner dem Spieler dauernd!!!
    Und zwar nur in die 4 Bewegungsrichtungen die Erlaubt sind!


    Grüßle Blayde

    EDIT:

    Neue datei hochgeladen, Bug behoben ^^
    Dateien
    • Path_Grid.gmk

      (10,67 kB, 134 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Blayde ()

  • Man muss mir nichts vorkauen... Nur kann ich doch erwarten hier hilfe zu finden ?

    Ich benutze sehr oft die GM-Hilfe, aber der hat sich nicht vom fleck bewegt!

    Der hat nichts gemacht !

    ABER egal, ich mach es anders und in dem GMK example hat der sich auch nicht immer nur in 4 Directions bewegt!

    Ich hab aber ne andere Möglichkeit !