Problem mit point direction code (GM2 /No DnD)

  • Problem mit point direction code (GM2 /No DnD)

    Hallo zusammen.
    Ich arbeite gerade an ein Space invader Clone und stehe vor ein Problem wo ich eure Hilfe gebrauchen könnte da ich noch recht neu bin in der GM2 Szene.

    Und Zwar habe ich das Problem das ich mit den code point_direction gerne nur in einer Richtung z.b Schissen möchte.
    Also habe ich herum Probiert und kam leider zu einer Mittlere Lösung und zwar so

    Quellcode

    1. bulletPower = 1;
    2. bulletSpeed = 3;
    3. direction = point_direction(y,y,y,x)
    4. speed = bulletSpeed;
    5. image_angle = direction

    Die 3 y Koordinaten machen genau das was ich möchte nach oben schissen.Nur das x schiss nach einen Überschreitung des Bildschirm Punkt nach unten.
    Wenn ich aber alle in Y um ändere schiss mein Raumschiff nach Rechts.Nun habe ich alle erdenkliche Kombi schon aus probiert nur die mit der 3 y Variante Funktioniert so in etwa wie ich es gern hätte.

    Lösche ich z.b die letzten zwei code y,x wird mir ein Argument Fehler bei speed = bulletSpeed; angezeigt was mir sagt das es Minimum 4 code erforderlich ist in point_direction.

    Noch eine Info mein Raumschiff Bewegt sich nicht nur nach rechts und links sondern auch nach oben und unten.(Soll aber nur in einer Richtung schissen)

    Da ich schon sämtliche Seite die ich kenne durch bin und mein Englisch nicht gerade gut ist frage ich hier mal lieb nach ob jemand helfen kann.
    Und ob es eine bessere Lösung gibt.

    Ich Programmiere mit den Normalen GMS2 Code nicht mit den DnD drop code

    Dank Voraus

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

  • Ja, wobei ich Dir für die Bewegung, hspeed und vspeed ans Herz legen möchte.
    Also für die Bewegung Horizontal und Vertikal, speed solltest Du meiden, da Du
    damit nicht wirklich eine Kontrolle hast, außer Du gibst eine Richtung vor und
    die Geschwindigkeit und möchtest keine weitere Kontrolle darüber.
    In Deinem Fall könntest Du beides nehmen, aber gewöhne es Dir gleich richtig an.

    Mit vspeed = -1 und direction = 90 fliegt Dein Objekt mit 1 Pixel Geschwindigkeit
    nach oben.


    Miradur
  • jop und falls du doch point_direction verwenden willst, weil du dann später auch mal die Schüsse schräg schießen willst, dann musst du das so machen:

    GML-Quellcode

    1. point_direction(x, y, x, y-1);


    Du kannst dir das vorstellen wie einen Faden der zwischen den beiden x und y koordinaten gezogen wird. x und y ist genau dein Schiff und x und y-1 ist ein pixel oberhalb deines Schiffs. Der Faden zeigt also nach oben oder auf 90 grad. Im Gamemaker ist 0 rechts, 90 oben, 180 links und 270 unten.
    Du könntest auch

    GML-Quellcode

    1. point_direction(0, 0, 0, -1);

    schreiben, das hätte das selbe ergebnis.


    Oder wenn du dein Raumschiff mit hspeed nach links und rechts bewegst und du willst, dass die kugeln nach links und rechts weggeschossen werden wenn sich dein raumschiff bewegt:

    GML-Quellcode

    1. point_direction(x, y, x + hspeed, y-1);



    Zum besseren Verständnis kannst du auch mal im draw Event:

    GML-Quellcode

    1. draw_line(x, y, mouse_x, mouse_y);
    2. //oder
    3. draw_line(x, y, x, y -32);

    reinschreiben, dann siehst du quasi was der point_direction code macht.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)