halbkreis bewegung erstellen

  • halbkreis bewegung erstellen

    hy

    also ich will einen laser machen der an der decke hängt und von links nach rechts im halbkreis sich bewegt...natürlich soll die spitze des lasers auch immer in die gleiche richtung sehn .
    also ich hab 2 objekte....einmal den laser schuss und dann noch den laser (der laser soll sich mit dem schuss mit bewegen)

    wie kann ich das machen??

    ich bekomm nur einen vollen kreis hin und ohne das sich die spitze mitbewegt...hab es mit lengthdir.x und y gemacht .wäre toll
  • Hi,

    Für die Bewegung des Laser´s:

    GML-Quellcode

    1. var ziel_dir, laser_dir, entfernung_kleiner, entfernung_größer, max_dir;
    2. ziel_dir = point_direction(x,y,obj_player.x,obj_player.y); //gibt die direction vom Laser zur Spieler an
    3. laser_dir = obj_laser.direction; //die momentane Richtung des Laser´s
    4. entfernung_kleiner = ziel_dir - laser_dir; //sorgt dafür das der Laser nicht so wackelt wenn er sein ziel erreicht hat (p.s. ist nur notwendig bei diesem Code, da ich die Geschwindigkeit extra gemacht habe)
    5. entfernung_größer = laser_dir - ziel_dir; // noch mal das gleiche in grün für die andere Seite. ^^
    6. max_dir = 1; //Die Geschwindigkeit des Laser´s
    7. image_angle = direction; //Die Richtung des sprites
    8. if laser_dir < ziel_dir
    9. {
    10. if entfernung_kleiner < max_dir
    11. {
    12. direction += entfernung_kleiner;
    13. }
    14. else
    15. {
    16. direction += max_dir;
    17. }
    18. }
    19. if laser_dir > ziel_dir
    20. {
    21. if entfernung_größer < max_dir
    22. {
    23. direction -= entfernung_größer;
    24. }
    25. else
    26. {
    27. direction -= max_dir;
    28. }
    29. }
    30. if direction <= 190
    31. {
    32. direction = 190;
    33. }
    34. else
    35. if direction >= 350
    36. {
    37. direction = 350;
    38. }
    Alles anzeigen

    Natürlich kann man auch die entfernung_größer, entfernung_kleiner und max_dir rauslassen, dann würde der Laser sofort auf das Ziel springen aber ich finde es so ein wenig cooler und schöner.^^

    Mit dem Laser Strahl ist es das gleiche wie mit collision_line, also liegt der spieler in der Linie des Laser´s soll er schaden bekommen...Fertig. :D
    Ich hoffe das funktioniert alles so. ^^
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • Du kannst statt Player.x einfach eine andere Variable nehmen die du hoch bzw. herunterzählst
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Wenn das so ist, dann machen wir es wie Husi sagt:

    create Event

    GML-Quellcode

    1. dir1 = true;


    step event:

    GML-Quellcode

    1. var ziel_dir, max_dir;
    2. ziel_dir = point_direction(x,y,lengthdir_x(x + 10,direction),lengthdir_y(y + 10,direction));
    3. max_dir = 1;
    4. image_angle = direction;
    5. if direction <= 190
    6. {
    7. dir1 = true
    8. }
    9. if direction >= 350
    10. {
    11. dir1 = false
    12. }
    13. if dir1 = true
    14. {
    15. direction += max_dir;
    16. }
    17. else
    18. {
    19. direction -= max_dir
    20. }
    Alles anzeigen


    Ich dachte ich kann dir ein wenig vorweg greifen. Deswegen habe ich das gleich so gemacht. ^^
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.