Unendlich Gegner Direction

  • GM 8

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

  • Unendlich Gegner Direction

    Hallo liebe Game Maker Geminschaft.
    Ich bin dabei ein Spiel zu kreieren indem von einem zu einem anderen Punkt objekte hinfliegen.
    Wenn sie das Ziel erreicht haben wird dem Spieler Leben gezogen.
    Um sich dagegen zu wehren kann der Spieler sich Geschütze kaufen und sie ihrgendwo Platzieren.
    Mein Problem ist Das das Geschütz sich zu dem ihn närsten feindlichen Objekt drehen soll und anschließend schießen.
    Wie kriege ich das hin ?

    Danke im Voraus
  • Du ermittelst zuerst mit instance_nearest die am nächsten gelegene Instanz des Gegners, berechnest den Winkel zu dessen Koordinaten mit point_direction und erstellst eine Instanz des Projektils.

    Was sich etwa so in Code umsetzen lässt (Pseudo-Code):

    GML-Quellcode

    1. nearest_enemy = instance_nearest(x, y, obj_enemy);
    2. if (instance_exists(nearest_enemy)) {
    3. angle_to_enemy = point_direction(x, y, nearest_enemy.x, nearest_enemy.y);
    4. shoot(); // solltest du selbst hinkriegen ;)
    5. }
  • Mit der Funktion

    GML-Quellcode

    1. instance_nearest(x,y,obj) //Gibt die ID der Instanz von Objekt obj zurück, welche am nächsten am Punkt (x,y) ist. obj kann ein Objekt oder das Schlüsselwort "all" sein.

    n xy gibst du die Koordinaten des geschützes ein und bei obj den jeweiligen Gegner(-typ)
    somit hättest du das am nächsten liegende Objekt/Gegner vom geschütz aus.

    der code (in etwa):

    GML-Quellcode

    1. var n,d;
    2. n = instance_nearest(x,y,obj_gegner) ;//nähestes objekt
    3. if (instance_exists(n)) {
    4. d = point_direction (x,y,n.x,n.y);//richtung zum objekt berrechnen
    5. var b;
    6. b = isntance_create(x,y,obj_schuss);//schuss erstellen
    7. b.speed = 2;//schussgeschwindichkeit festlegen
    8. b.direction = d;//schussrichtung festlegen
    9. }


    /Edit: mist. zu spät.

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

  • Danke und Probleme :D

    Erstmal danke für eure schnellen antworten.
    Meine Probleme sind jetzt:
    1.Immer wenn ich obj_gegner mit dem richtigen namen FruitTyp1.obj austausche steht da unknow variable.
    2.Ich kann schlecht die Koordinaten statt x und y eingeben ,wenn der Spieler auswählen kann wo er 1 2 oder 3 Geschütze hinsetzt.

    Ich lade einfach mal eine Datei hoch.
    Danke
    Dateien
    • FruitDown.7z

      (32,18 kB, 435 mal heruntergeladen, zuletzt: )
    1. Bist du dir ganz sicher, dass "FruitTyp1.obj" ein Objekt ist? (Wenn ja, dann benenne es bitte zu "objFruitTyp1" oder ähnlichem um. Ich bin mir nicht ganz sicher wie weit der Game Maker diese nicht-konformen Bezeichnungen zulässt.)
    2. Dies sollte kein Problem darstellen, wenn du den Code z.b. im Create-Event des Geschützturm ausführen lässt.

    PS: Ich hatte bedauerlicherweise keine Möglichkeit deine Projektdatei zu untersuchen.