Hi, ich möchte, wenn alle Gegner besiegt sind, dass eine Meldung kommt: "Level Beendet". Ich habe das schon mit Variablen versucht. Das geht, aber dann muss ich für jedes Level ein Objekt mit einer Variable erstellen. Geht das nicht auch anders?
Nächstes Level
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Du kannst mit einem gewissen Code abfregen, ob noch eine gewisse Stückzahl von Objekten vorhanden ist, ich kann dir aber net den Code sagen, ich hab des mit D&D gemacht. Ist bei Variables und da so ein Blauer Ball mit "1 2 3" drauf.
-
-
-
-
Es ist ja auch klar, dass es bei meinem Spiel mehrere Gegner gibt. Das habe ich auch gedacht, aber kann ich zweimal If a instance has a value angeben? Hört sich komisch an.
-
!??!
Versteh ich ürgendwie net o_O -
Mach bei deinen Gegnern folgenden Code in's Create Event:
Im allerersten Raum solltest du mit Hilfe eines Controller Objekts (Ein Objekt, das nur Code ausführt uns sonst nichts) global.gegner_anzahl auf 0 setzen, damit die Variable definiert ist und es keine Probleme gibt, wenn der erste Gegner versucht, eine nicht existierende Variable zu erhöhen...
An stelle von global.gegner_anzahl kannst du auch jedem beliebigen anderen Namen für deine Variable nehmen, wichtig ist nur das "global." am Anfang.
Und in das Destroy Event jedes Gegners kommt folgender Code:
Und das für jeden Gegner, sobald alle Gegner jeder Art besiegt sind, kommst du weiter. -
Ich weis net CAS, aber irgendwas hast du bei Zeile 96 falsch gemacht.
"Unexpectet operator Expeeded" oder so :O -
1.: Ich hab keine 96 Zeilen gepostet.
2.: Du solltest die ganze Fehlermeldung senden, sonst muss ich raten, was nicht stimmt.
3.: Ich rate mal, dass du das mit dem Controller, der die Variable iniziieren soll, vergessen hast.
Edit: Kannst du wenigstens sagen, was bei dir in Zeile 96 steht?Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von CAS ()
-
Original von Merko
Ich weis net CAS, aber irgendwas hast du bei Zeile 96 falsch gemacht.
"Unexpectet operator Expeeded" oder so :O
Wenn man die ganzen codezeilen zusammenzählt die CAS "gemacht" hat, kann man logischerweise nur ........... 7.. ^^" zählen -
-
-
-
Sohn, lass dir mal im debug Modus die global.gegner_anzahl Variable ausgeben. Der Debug Modus ist dein Freund wenn es darum geht Fehler zu finden. Wenn diese zahl irgendwas außer einer Null ist, wenn du alle gegner gekillt hast, ist das schon ein anfang.
Jetzt noch eine check list
Ganz am anfang (am besten in den Creation code des ersten raums)
global.gegner_anzahl = 0;
Beim create eines jeden Gegners:
global.gegner_anzahl += 1;
und beim kill eines gegners das abziehen.... -
-
Original von Shoba
und beim kill eines gegners das abziehen.
Das ist doch unsinn. Wenn man das macht, hat man das Level nach einem Abschuss doch schon geschafft. -
Und schon sehe ich das problem. Undank ist der Menscheit lohn aber was solls. Du sollst bei dem Create eines jeden gegners die Globale Variable mit der Gegneranzahl erhöhen. Wenn du das richtig machst, hast du die Genaue Anzahl der Gegner in diesem Raum drinnenstehen. Wenn du jetzt bei einem Kill geanu das machst, was schon vorher besprochen wurde, wird die Zahl jedes mal um eins gesenkt, was bedeutet, das wenn die Zahl 0 ist, alle gegner Tod sind....
-
ich hofe das ich jetzt nix übersehen habe das diesen code ausschließt aber warum nicht benutzen? dan kan man sich die ganze sache mit dem global.gegneranzahl+-=1 spahren. wen du mehrere gegner hast dan so:Nobody is perfect (-:
"Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl -