Objektverfolgung

  • GM 8

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

  • Objektverfolgung

    Hallo zusammen,

    ich habe mich nach nunmehr 1 1/2 Jahren arbeiten mit GM soweit in die Materie eingearbeitet, dass ich nun endlich mal mein Projekt
    angehen kann, was ich ursprünglich mit GM machen wollte. Ein SHMUP ala Mushihimesama Futari.
    Meine ersten Schritte sehen auch schon richtig mächtig aus. Nur hänge ich nunmehr schon den ganzen Tag an einem Problem.

    Also...

    Ich habe mein Schiff und ich habe gerade aus vor mir einen Feind. Dieser schiesst nun eine Bullet (eigenes Objekt) auf mich. Da er genau geradeaus ist, schiesst er also genau gerade aus runter. Nun ziehe ich mein Schiff nach rechts oder links an den Rand, der Feind bleibt in der Position wie vorher. Wenn er nun schiesst, soll der Schuss wieder auf mich zu kommen. Quasi soll der Feind sehen wo ich mich aufhalte, und sein Bullet in diese Richtung abfeuern. Es soll mich aber nicht verfolgen, sondern einfach nur den Schuss in meine Richtung abgeben. Wenn ich dann ausweiche, soll das Bullet in der eingeschlagenen Bahn bleiben.
    Ich habe ehrlich gesagt keine Ahnung wie ich das bewerkstelligen soll.

    Hat da jemand vielleicht nen Denkanstoss am besten mit einem Beispiel?

    Vielen Dank schonmal

    Gruß

    Groni
  • Im Bullet-Objekt:

    Create:

    GML-Quellcode

    1. x_pos = player.x
    2. y_pos = player.y
    3. // player ist der Name vom Objekt, das von dir gesteuert wird, die Variablen kannst du natürlich anders nennen


    Step:

    GML-Quellcode

    1. move_towards_point(x_pos, y_pos, speed) //speed in Pixel pro Step
  • Ich schätze du erstellst dein Bullet damit: :action_create:
    Erstell es damit :action_createspeed: und du kannst zusätzlich Geschwindigkeit und Richtung angeben. Bei Richtung trägst du ein: point_direction(x, y, obj_player.x, obj_player.y)

    In GML kannst du es ähnlich lösen, indem du im Create-Event des Bullets einfach die direction setzt:

    GML-Quellcode

    1. direction = point_direction(x, y, obj_player.x, obj_player.y);

    © 2008 by Teamgrill Productions