"Enemycreator"

  • GM 8

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

  • "Enemycreator"

    Ich hab wieder mal eine Frage:

    Ich habe ein Spiel gemacht (namens Spaceshooter) und da ist ein ... Raumschiff, dass ... schiesst.

    Da dass jetzt alleine recht langweilig ist, hab ich mir gedacht ich mach doch ein paar Gegner.
    Jetzt sollen die immer von oben nach unten ... gleiten, und einem Path folgen (oder auch nicht).

    Jetzt die Frage: Wie mache ich, dass ein ... Object laufend neue Gegner erstellt?


    Also ich hab mir das so vorgestellt, dass es verschiedene Levels gibt, die Levels aber immer die selben sind, also nicht, dass einfach zufällig Gegner erstellt werden.
    (Also Level 1: 10 Gegner kommen von oben nach unten. Level 2: 20 Gegner kommen von links nach rechts. Level 2 gescheitert: wieder 20 gegner von links nach rechts. usw.)

    Ich hab den verdacht, dass da ein Object sein muss, dass die Gegner erstellt, also nicht einfach Gegner, die einem Path folgen.

    Gruss und danke für die Antwort

    Goldendragon
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • Das ist eigendlich recht einfach. Im Prinzip hast du die Aufgabe schon selbst gelöst.^^ Recht einfach ist es ein Kontroll-Objekt zu erstellen das den zeitlichen Ablauf des Gegener spawns steurert. Ein Path brauchst du nicht unbedinkt außer sie sollen abstrakte Formen fliegen. Verwende einfach zum bewegen der Gegner vspeed und hspeed des Gegner-Objektes.
    Du kannst für die Gegner einfach ein eigenes Objekt erstellen mit Grafik und jeweiligen Funktionen (wenn die was machen sollen, außer hin und her fliegen (hspeed oder vspeed)).
    Das Kontroll-Objekt das die Gegner-Objekt erstellt kann sie zufällig an einem Ort erstellen lassen und sie aber auch zusätzlich in einem Intervall mit Zufallsfaktor erstellen (Alarm-Event starten).

    GML-Quellcode

    1. //in diesem Falle ihrgendwo auf dem Bildschirm (bei Screen 640x480) zwischen x 0-640 und y -16 damit er hinterm Bildschirmrands spawnt.
    2. instance_create(0+rand(640),-16,obj_enemy);
    3. //damit das erstellte object nach unten fliegt - hspeed = 5 dmait es von links nach rechtsd fliegt... usw.
    4. obj_enemy.vspeed = 5;
    5. //Zeit in der das nächste Alarm-Event startet mit Fixzeit von 30 Steps und Zufallszeit 0-15 Steps.
    6. alarm[0] = 30 + rand(15);

    Wenn Du wie oben einen nicht variablen zeitlichen Ablauf haben möchtest kann du auch die Gegner-Objekt zu einer bestimmten Zeit, Invervall und Ort spawnen lassen. Dies kannst du über Alarm-Events regeln oder eine Variable die sich bei jedem Step um eins erhöht. Die Variable kannst du dann entnehmen wie lange (Steps) das Objekt schon exestiert und danach das spawnen der Gegner steuern.
    Probiers einfach aus!
  • //in diesem Falle ihrgendwo auf dem Bildschirm (bei Screen 640x480) zwischen x 0-640 und y -16 damit er hinterm Bildschirmrands spawnt.
    instance_create(0+rand(640),-16,obj_enemy);
    //damit das erstellte object nach unten fliegt - hspeed = 5 dmait es von links nach rechtsd fliegt... usw.
    obj_enemy.vspeed = 5;
    //Zeit in der das nächste Alarm-Event startet mit Fixzeit von 30 Steps und Zufallszeit 0-15 Steps.
    alarm[0] = 30 + rand(15);


    Verschiedene ERRORs:
    ERROR at line 2 pos 20: Unknow function or script: rand
    ERROR at line 6 pos 18: Unknow function or script: rand

    Wenn ich das "rand" einfach lösche und das Spiel starte, sieht zuerst alles gut aus. Ich befinde mich am anfang in einem Startroom, in dem man Buttons klicken kann, um das Spiel zu starten, Optionen usw. Wenn ich jetzt auf Spiel starten klicke, stürtzt das Spiel ab!!???

    Vielleicht noch wichtig:

    Ich hab das Script bei dem Enemycreator-Object eingefügt, unter "Create".
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • es heißt random nicht rand. Dann müsste es laufen. du solltest dir mal etwas Zeit nehmen und das Handbuch lesen oder ein Tutorial machen. Das hilft wirklich. :)
    -> Back to Topic:
    random statt rand
    und random_range(x1,x2) wenn du etwas zwischen zwei punkten erschaffen willst ;)
  • Ähm also Danke!

    Jetzt ist aber trotzdem noch das Problem mit dem "Spiel starten"-Button.

    Wenn ich jetzt da drauf klicke passiert erst mal gar nix.
    Wenn ich da ca. 20x drauf klicke stürtzt das Game ab.

    -.-!
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • "ähm ja...?? Code..."!
    Sehr hilfreich jetzt weiss ich mehr!
    Jetzt sind alle meine Probleme gelöst!
    Du hast die Antwort auf all meine Fragen gepostet!
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • Aaaha.

    //in diesem Falle ihrgendwo auf dem Bildschirm (bei Screen 640x480) zwischen x 0-640 und y -16 damit er hinterm Bildschirmrands spawnt.
    instance_create(0+random(640),-16,obj_enemy);
    //damit das erstellte object nach unten fliegt - hspeed = 5 dmait es von links nach rechtsd fliegt... usw.
    obj_enemy.vspeed = 5;
    //Zeit in der das nächste Alarm-Event startet mit Fixzeit von 30 Steps und Zufallszeit 0-15 Steps.
    alarm[0] = 30 + random(15);
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • jaaa, aber erst seitdem ich diesen Code benutze!

    Der Button hat kein Code: Da hab ich bei "Left Mouse Release" "Go to next room"!
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • GMK ist die datei, in dem das spiel ist bevor du es kompilierst.
    Die Endung ist halt .gmk
    Wenn du die uns gibst, können wir sie öffnen, dein spiel anschaun und nachsehen wo der fehler liegt.

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • file-upload.net/download-3114232/Abschlussarbeit3.gmk.html

    Ich bin dan mal weg komme morgen wahrscheinlich wieder :D bb
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • Gut das ich das bekommen hab (:

    Der Fail mit dem Abstürzen ist behoben, keine Bugs mehr, ich habe die Sprites ein bisschen bearbeitet und ein paar Effekte eingefügt(Motion-Blur inklusive beim Player) du kannst es grafisch ja jederzeit bearbeiten wie es dir gefällt.
    Und noch was: Der Code war am Abstürzen NICHT schuld! Beim Exit-Button war ein Global-Mouse-Button-Release-Event dabei.
    Viel Spaß damit.

    EDIT: Eine Lebensanzeige gibt's auch, es passiert nur nichts, wenn sie leer ist :thumbsup:

    EDIT2: Gefällts dir oder gefällts dir nicht??? o_O
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Mr. Diesel ()

  • Danke viiiel mals!

    Jetzt müsste ich aber noch wissen was alles zur Livebar gehört, und wo ich rein...setzen muss, dass, wenn ein Gegner den Player berührt, ein Leben... abgezogen wird, und auch wie ich jetzt die Paths einsetzte, und die Gegner dem folgen und nicht einfach zufällig herunter... sausen. Und AUCH wo man die Gegner langsamer machen kann, und auch, wie ich jetzt mache, dass eine bestimmte anzahl von gegnern herunterkommt, dabei nicht immer demselben Path folgt, und das Level irgendeinmal fertig ist.

    JAA das sind viele fragen!
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • Healthbar: Variable Health, steht schon im Collision Event beim Player mit den Feinden.
    Bestimmte Anzahl: Drei neue Variablen: Level, Enemies_arrived und Enemies_Anzahl.

    das Level ändert sich immer, wenn der Instance_count von obj_enemy(alle Gegner haben diese als Parent!!!!!!!!!!!! Das MUSS so bleiben!!!!) 0 ist und Enemies_arrived true ist.
    ...

    Ich mach hier nicht mehr weiter, weil ich ja eigentlich dir das Spiel diktiere und das eigentlich echt einfach ist. 8|
    Du solltest wirklich die Tutorials machen! :huh:
  • Bahnhof!

    Ich schau mir jetzt mal die Tuts an
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%