Gegnerverhalten

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

  • Gegnerverhalten

    Hallo GM-Gemeinde!

    Vorweg: Die Suchfunktion hat mir kein befriedigendes Ergebnis beschert.

    Mein Problem:
    Damit mich ein Gegner verfolgt gibt es ein nettes Script:

    GML-Quellcode

    1. if point_distance(obj_character.x,obj_character.y,x,y)>16
    2. move_towards_point(obj_character.x,obj_character.y,3)
    3. else
    4. move_towards_point(obj_character.x,obj_character.y,distance_to_point(obj_character.x,obj_character.y))


    Nun würde ich das Script gerne erweitern:
    1.
    Erst wenn mein Gegner mich sieht (wie soll das gehen) sollte er sich in Bewegung setzen.

    2.
    Wenn mich mein Gegner berührt hat, sollte er sich wieder etwas entfernen, um dann erneut anzugreifen.
    Die einzigen Gegner, die nicht immer eine Ausrede auf Lager haben, wenn sie gegen mich verlieren, sind Computer.
  • zu 1: wenn keine wände oder andre gegenstände zwschen sind? oder wie? da könnt ich dir leider auch nicht helfen
    zu 2: wenn er sich nur ein wenig entfernen soll dann jump to a given position x-16 oder x+16 oder so ähnlich
    oder mit einer variabel zum beispiel
    if verfolgen=1
    {
    if point_distance(obj_character.x,obj_character.y,x,y)>16
    move_towards_point(obj_character.x,obj_character.y,3)
    else
    move_towards_point(obj_character.x,obj_character.y,distance_to_point(obj_character.x,obj_character.y))
    }
    if verfolgen=2
    move_towards_point(....,...,3) oder so ähnlich


    ich hoffe du verstehst wie ich das meine
  • Gegnerverhalten

    Danke Superdaniel für Deine Anregung!

    Zu 1.
    Ich möchte einfach nicht, dass der Gegner sich in Bewegung setzt nur weil der Held in der Nähe ist - eine Mauer aber dazwischen ist -.

    Zu 2.
    Nach dem Zuschlagen des Gegners sollte sich der Gegner in eine Richtung zurückziehen die z.B. nicht von einer Mauer versperrt ist.
    Dateien
    Die einzigen Gegner, die nicht immer eine Ausrede auf Lager haben, wenn sie gegen mich verlieren, sind Computer.
  • Ist so gut?

    Edit: Sry Kommentar vergessen.
    Wichtig ist nur der Gegner.
    Schau in den Step Script und collision mit dem Spieler.

    Neue Scripte/Befehle :

    collision_line(x1,y1,x2,y2,obj (objekt das als collision gilt),prec (ich glaube precise),notme (weiss ich auch nicht ^^))

    Ich habe eine variable gemacht die heisst folgen.
    Wenn sie 0 ist greift der Gegner an.
    Sonst wird sie 1 runtergezählt und bei der collision wird abgefragt ob sie glecih 0 ist. Wenn ja wird sie auf 24 gesetzt und der Gegner kehrt sich.

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

  • Das mit der Mauer könnte man so machen:

    der gegner "verschießt" alle paar steps ein unsichtbares object, Wenn dieses auf die Mauer trifft, wird es destroyed, wenn es aber den Spieler triff werden die anderen scripts aktiviert, die dafür verantwortlich sind, dass der Gegner zum Spieler läuft.
    Aldifan.de

    "Aldi ist weniger eine Frage des Geldbeutels, sondern eine des Glaubens! "