Projektile Fehler

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

  • Projektile Fehler

    Moin moin ^^

    Ich habe versucht, dass mein Player, wenn ein gewisses Script scr_bow_state ausgeführt wird, dieser stehen bleibt, ein bogen erscheint, der sich nach der Maus ausrichtet und der mit Linksklick Pfeile in Richtung der Maus verschießt. Das klappt alles super, allerdings wird jedes mal, wenn ich in mein script ausführe, und der bogen erscheint etc, ein pfeil auf der x und y koordinate des players erstellt, was ich nicht will, da enemies sofort sterben wenn sie über diesen pfeil laufen, der eigentlich gar nicht existieren sollte...

    das scr_bow_state script:

    var p = instance_create(x, y, obj_projectile);
    var dir2 = point_direction(x, y, mouse_x, mouse_y)
    var temp_dir = dir2+random_range(-vari, vari);
    var xforce = lengthdir_x(7, temp_dir);
    var yforce = lengthdir_y(7, temp_dir);
    p.creator = id;
    image_index = 0;
    image_speed = 0;

    if (obj_input.attack && obj_player_stats.mana >= MANA_COST)
    {
    alarm[1] = room_speed*4;
    obj_player_stats.mana -= MANA_COST;
    obj_player_stats.alarm[1] = room_speed*4;
    with(p)
    {
    physics_apply_impulse(x, y, xforce, yforce);
    }
    }

    if (obj_input.spell)
    {
    state = scr_move_state;
    }

    Danke schonmal im Vorraus :)
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^

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

  • Naja du erstellst das objekt ja jedes mal wenn der Code ausgeführt wird...
    Für mich sieht das so aus, als ob der obere Codeabschnitt mit in das if müsste.
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • danke larsi, klappt jetzt super ^^

    hätte aber noch ein anderes kleines problem:
    im sprite "guckt" mein pfeil immer nach rechts, was muss ich machen damit er immer in die richtung "guckt", in die geschossen wird? :)
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • einfach

    GML-Quellcode

    1. p.image_angle = dir2;

    hinter dem erstellen der Variable dir2
    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
  • GML-Quellcode

    1. var p = instance_create(x, y, obj_projectile);
    2. var dir2 = point_direction(x, y, mouse_x, mouse_y);
    3. p.image_angle = dir2;
    4. var temp_dir = dir2+random_range(-vari, vari);
    5. var xforce = lengthdir_x(7, temp_dir);
    6. var yforce = lengthdir_y(7, temp_dir);
    7. p.creator = id;
    8. image_index = 0;
    9. image_speed = 0;
    10. if (obj_input.attack && obj_player_stats.mana >= MANA_COST)
    11. {
    12. alarm[1] = room_speed*4;
    13. obj_player_stats.mana -= MANA_COST;
    14. obj_player_stats.alarm[1] = room_speed*4;
    15. with(p){physics_apply_impulse(x, y, xforce, yforce);}
    16. }
    17. if (obj_input.spell){state = scr_move_state;}
    Alles anzeigen
    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
  • image_index = 0;
    image_speed = 0;

    if (obj_input.attack && obj_player_stats.mana >= MANA_COST)
    {
    var p = instance_create(x, y, obj_projectile);
    var dir2 = point_direction(x, y, mouse_x, mouse_y);
    p.image_angle = dir2;
    var temp_dir = dir2+random_range(-vari, vari);
    var xforce = lengthdir_x(7, temp_dir);
    var yforce = lengthdir_y(7, temp_dir);
    p.creator = id;

    alarm[1] = room_speed*4;
    obj_player_stats.mana -= MANA_COST;
    obj_player_stats.alarm[1] = room_speed*4;
    with(p)
    {
    physics_apply_impulse(x, y, xforce, yforce);
    }
    }

    if (obj_input.spell)
    {
    state = scr_move_state;
    }
    if (obj_input.dash)
    {
    state = scr_move_state;
    }

    hier nochmal der überarbeitete code...
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
  • Achso stimmt ist ja Physik. Da hab ich grad nicht so viel Ahnung von. Statt image_angle muss da das für Physik rein.
    Ich dachte grad erst phy_angle, aber das gibts auch nicht.
    Musst du mal nachschauen ;)
    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
  • Lass mich raten, Copy&Paste?

    GML-Quellcode

    1. var temp_dir = dir2+random_range(-vari, vari);

    Da ist das. Hier der Pfeil zufällig etwas in eine andere Richtung gelenkt
    mache mal temp_dir = dir2 oder einfach die Variable überall durch dir2 ersetzen
    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