Autoaimfunktion tunen

  • Autoaimfunktion tunen

    Ich habe wieder mal ein Problem.
    Ich habe einen topdown shooter, in dem der Player automatisch auf den nächststehenden Gegner zielen soll.
    Ich benutze dafür im Transform Sprite event:

    point_direction(x,y,instance_nearest(x,y,EnemyAnt).x, instance_nearest(x,y,EnemyAnt).y)

    Damit Zielt er aber nur auf die nächste EnemyAnt, ich will aber mehrere verschiedene Gegner benutzen.

    Da ich einen Multi Sprite generierten Player benutze, kann ich nicht die:

    instance_nearest(x,y,ALL)-Funtion

    benutzen, weil er sich dann selber anschaut... ja oder in Folge dann das nächststehenden Objekt.

    Hat wer eine Idee wie ich die Waffe auf den nächsten Gegner richten kann, wenn ich so, ca. 20 VERSCHIEDENE Gegner benutze?

    Noch eine Frage:
    Wie reduziere ich die autoaim funktion auf einen 100° Winkel rechts bzw. links vom Spieler?
    Dateien
    • Fetzerei.zip

      (8,05 kB, 205 mal heruntergeladen, zuletzt: )
    Es gibt sicher auch ganz einfache Lösungen, aber wer versteht die schon?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Pausenbrot ()

  • dein erstes problem lässt sich spielend einfach mit einem parent object lösen. Ich habe einfach ein object erstellt mit dem namen "obj_ParentEnemy" und in den beiden armen diese zeile

    point_direction(x,y,instance_nearest(x,y,EnemyAnt).x, instance_nearest(x,y,EnemyAnt).y)

    durch diese ersetzt:

    point_direction(x,y,instance_nearest(x,y,obj_ParentEnemy).x, instance_nearest(x,y,obj_ParentEnemy).y)

    zuletzt muss noch als für jeden gegener dieses object als parent definiert werden.
    nebenbei gewöhn dir mal an, alle resccurcen in deinem game mit einer typbezeichnung zu versehen. das ist erstens übersichtlicher und zweitens verhindert das errors. also sprites mit "spr_", backgrounds mit "back_", objecte mit "obj_". öder ähnlichem beginnen lassen etc.

    dein zweites problem ist mir mit icons zu kompiziert zu erstellen. grundsätzlich brauchst du aber nur eine abfrage einbauen, ob die direction deises players (ich hab nicht nachgesehen ob du damit arbeitest) des players entsprechend dem winkel von
    point_direction(x,y,instance_nearest(x,y,obj_ParentEnemy).x, instance_nearest(x,y,obj_ParentEnemy).y)
    ist. also so etwa:

    GML-Quellcode

    1. tempdir=point_direction(x,y,instance_nearest(x,y,obj_ParentEnemy).x, instance_nearest(x,y,obj_ParentEnemy).y)
    2. if tempdir<direction+100 && tempdir>direction-100
    3. {"ausrichten"}
    4. else
    5. {"entweder nichts oder ein standartwinkel etc."}


    EDIT: anhang vergessen
    Dateien
    • Fetzerei.zip

      (4,07 kB, 217 mal heruntergeladen, zuletzt: )
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von WIN ()

  • bist doch schon grösser als ich :D

    EDIT: credits dafür sind nicht nötig
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

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

  • Benutzer online 1

    1 Besucher