Shooter

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

  • Hi, hab deine durcheinander geradene Engine auch ein bisschen aufgeräumt.

    Du könntest die Events von W, A, S, D Release sparen und einfach ein No key event machen, hab dir alles mal ins Step geschrieben
    und am besten sprites und objects immer mit spr_... und obj_... benennen, so wie ichs teilweise gemacht hab, ist übersichtlicher.
    Hab vor allem mal dein Spielerobjekt aufgeräumt:

    Download m.gmk

    Und natürlich hab ich dir auch lengthdir eingebaut wie ichs mir dachte.

    lengthdir berechnet halt die Koordinate von einem bestimmten Punkt entfernt im Kreis oder der Ellipse.


    Gruß Gamer
    Gruß Gamer
  • Doch kommen sie, vllt hast du noch die alte Version ausversehen.

    edit:
    achso sorry, ganz vergessen:
    Center den Origin von deinem Bulletsprite noch in den Sprite Properties dann funktionierts :D


    PS: Um dein Fadenkreuz rotieren zu lassen, brauchst du keine tausende Frames, mach einfach nur ein Sprite mit einem Frame und schreib ins Step Event von deinem obj_crosshair folgendes:

    GML-Quellcode

    1. image += 5;

    Je nachdem wie hoch der Wert ist, rotiert es langsamer oder schneller.
    Gruß Gamer

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

  • Ein problem gibt es noch... :headtouch:
    Ich hab jetft ein Gegner schuss object erstellt, und eingestellt, dass es sich bei create, zum spieler hinbewegt.
    Dann hab ich im gegner objekt gemacht, wenn ich ihm zu nahe komme, soll er schiessen (also instance_create).
    jetzt schiesst der gegner jedoch eine ganze salve, die nicht eher aufhört, bis ich wieder aus seinem radius verschwinde.
    Wie kann ich es machen, dass er nur einmal pro sekunde schiesst? ?(
    Ich bin noch neu im Forum und im Game Maker. Seid bitte nicht so streng. :|
  • Mit Alarmen:

    - Man definiere die Variable (z.b. can_shoot) im Create Event des Gegners mit false.
    - Man setze die Variable auf true, wenn der Spieler im Radius ist
    - Man frage im Step Event des Gegners ab, ob die Variable true ist, wenn dies der Fall ist, setze man die Variable auf false und alarm[0] auf room_speed, auserdem lasse man die Kugel erstellen
    - Im Alarm[0]-Event lasse man dann die Variable wieder auf true setzen und fertig wär das ganze, mal sehn, vllt bekommsts ja hin, ist auf jeden Fall nicht schwer und les dir mal das durch:

    GML - Die Einsteigerreferenz von Windapple


    Gruß Gamer
    Gruß Gamer
  • Also hier die Codes, hast also doch net hinbekommen macht nix, aber les dir wirklich mal die GML Einsteigerreferenz durch, wenn du programmieren lernen willst, sieht mühsamer aus als es ist:

    GML-Quellcode

    1. //Create
    2. can_shoot = false;


    GML-Quellcode

    1. //Step
    2. if distance_to_object(obj_player) < 250
    3. {can_shoot = true;}
    4. else
    5. {can_shoot = false;}
    6. if can_shoot == true
    7. {
    8. a = instance_create(x,y,obj_bullet)
    9. a.direction(x,y,obj_player.x,obj_player.y);
    10. a.speed = 10;
    11. alarm[0] = room_speed;
    12. can_shoot = false;
    13. }
    14. [gml]//Alarm0
    15. if distance_to_object(obj_player) < 250
    16. {can_shoot = true;}
    Alles anzeigen



    Hab noch im Alarm erweitert, dass auch im AlarmEvent überprüft wird.

    Du weißt aber schon was das ganz bedeutet oder, falls nicht:

    - Wenn can_shoot wahr ist, dann wird geschossen, ansonsten nicht
    - mit distance_to_object wird die distanz in Pixeln zwischen den Objekten überprüft
    - room_speed ist eine Sekunde
    - Alarm Events kannst dir wie ein Timer vorstellen, wird bsetimmte Zeit eingestellt, nach der Zeit wird die Aktion ausgeführt.

    Gruß Gamer
    Gruß Gamer
  • Den Error kapier ich ned...
    *verzweifel*


    ___________________________________________

    FATAL ERROR in
    action number 2
    of Step Event
    for object Gegner:

    COMPILATION ERROR in code action
    Error in code at line 9:
    a.direction(x,y,Spieler.x,Spieler.y);

    at position 10: Unknown function or script: direction
    Ich bin noch neu im Forum und im Game Maker. Seid bitte nicht so streng. :|