Enemies avoiding each other

  • GM 8
  • Enemies avoiding each other

    Hi,
    Ich arbeite zur Zeit an einem Action RPG wie z.b. Zelda. Monster, die den Spieler angreifen sollen wenn man sich ihnen nähert, gibt es schon. Ich habe nun aber das Problem, dass sich mehrere Gegner, die den Spieler verfolgen, mit der Zeit alle auf einem Punkt sammeln. Bisher meiden sie nur solide Objekte und selbst können sie nicht solide sein. Das beste was bisher funktioniert hat, war bounce against all objects in einem colission event, doch die Lösung ist auch gewöhnungsbedürftig. Gibt es irgendeine Möglichkeit die Gegner auseinanderzuhalten?
    Grüße Kernobee
  • So um Thread mal etwas anzukurbeln poste ich hier mal einen Teil meines Codes ;)
    Ich habe mit mp_potential_step_object(obj_char.x, obj_char.y, 2, obj_enemy) eigentlich eine gute Lösung gefunden,
    aber dann kann ich die Gegner die soliden Objekte (Wände,...) nicht mehr umgehen lassen.


    if distance_to_object(obj_char) < attackrange
    {
    mp_potential_step(obj_char.x, obj_char.y, 2, false)
    //mp_potential_step_object(obj_char.x, obj_char.y, 2, obj_enemy)

    if distance_to_object(obj_enemy) < 5
    {
    mp_potential_step(obj_char.x, obj_char.y, 2, true)
    }
    //Enemy death
    if hitpoints < 1
    {
    global.xp += 5
    instance_destroy()
    }
    }
  • Du musst parents benutzen:
    Mach dafür ein vollständig leeres Objekt namens obj_avoid.
    Dieses Objekt musst du sowohl bei den Gegner-Objekten als auch bei allen Wänden bzw. eben allem was ausgewichen werden soll, als "parent" geben. Dies kannst du links unter "depth" einstellen.
    Dann brauchst du nur noch

    GML-Quellcode

    1. mp_potential_step_object(obj_char.x, obj_char.y, 2, obj_avoid);
    zu benutzen.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)