level

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

  • Hallo Moos,

    erst einmal vielen Dank für deine Geduld.

    Was du meinst, hatte ich heute Mittag im EndStepEvent schon in :

    GML-Quellcode

    1. if global.punkte >= 1000{room_goto_next();}



    geändert und warum auch immer bekomme ich nun diese Fehlermeldung:

    GML-Quellcode

    1. ___________________________________________FATAL ERROR inaction number 1of End Step Eventfor object Unsichtbares_Objekt_1:
    2. Moving to next room after the last room.
    3. VG Maik
  • Hm... da weiss ich jetzt auch nicht grad weiter, hatte diese Meldung noch nie. Und begreifen tue ich sie auch nicht richtig :D .

    Vielleicht liegt es daran dass das object in dem nächsten Raum schon den Befehl für den nächsten Raumwechsel gibt da die Punkte nicht auf null gesetzt sind.
    Sollte dies der Fall sein kannst du ja zusätzlich zum Punktestand auch den room abfragen.

    GML-Quellcode

    1. if global.punkte >= 1000 && room="Raumname" {room_goto_next();}

    Aber wie gesagt: das ist nur eine Vermutung...


    meine Schnecke i@________________________________________________________________________________________
    bitte nicht drauf treten!
  • Hallo Moos,

    erst einmal vielen Dank für deine Hilfe...

    Dein Lösungsvorschlag geht leider nicht. Ich hab aber einen anderen Weg gefunden... halt aufwendiger, aber das Leben ist eben mal kein Ponnyhof.

    Aufgabenstellung war:

    Wenn Level 1 = über 1000 Punkte erreicht, dann springe ins nächste Level <- hier war schon der Grundgedanke falsch, denn wenn man im Level 2 = oder über 5000 Punkte erreicht sollte man ins Level 3 kommen.... usw.

    Lösung:

    Für jeden Raum ein eigenes unsichtbares Objekt, welches unterschiedliche Anweisungen im EndSpepEvent hat.

    Beispiel:

    Unsichtbares Objekt 1:

    GML-Quellcode

    1. if global.punkte >= 1000{room_goto(Raum_2);}



    Unsichtbares Objekt 2:

    GML-Quellcode

    1. if global.punkte >= 5000{room_goto(Raum_3);}



    Unsichtbares Objekt 3:

    GML-Quellcode

    1. if global.punkte >= 10000{room_goto(Raum_4);}



    ... und das kann man wiederholen bis man schwarz wird.

    Viele Grüße Maik
  • Hallo,

    das wäre natürlich die optimale Lösung für mich, wenn ich mit nur einem unsichtbaren Objekt auskommen würde.

    Da ich aber sozusagen in GML Neuling bin, verstehe ich nicht alles auf Anhieb obwohl vieles im nach hinein LOGISCH erscheint.

    Ich hab also keinen Plan wie der Code in GML:

    GML-Quellcode

    1. if room=RAUMNAME


    komplett aussehen muss. Ich sehe da keine Möglichkeit die gesammelten Punkte mit in den neuen Raum zu nehmen. Oder hab ich was übersehen?

    VG Maik
  • Nun, ich nehme an du hast dein Objekt auf Persistent, dann bleibt das Objekt ja in dem nächsten Raum erhalten.
    Nun machst du es so dass du nicht nur abfragst wie viele Punkte erreicht werden müssen sondern auch in welchen Raum du dich befindest.
    So kannst du beides abfragen:

    GML-Quellcode

    1. if room=Raum_1 // ob du in dem Raum Raum_1 bist

    GML-Quellcode

    1. if global.punkte <=1000 // ob du 1000 Punkte erreicht hast

    So lässt du dein Objekt einfach abfragen ob du dich im richtigen Raum befindest und ob du die Punktzahl erreicht hast.


    meine Schnecke i@________________________________________________________________________________________
    bitte nicht drauf treten!
  • Hallo,

    das das die Abfragen sind habe ich verstanden, nur wie kann ich die weiter verwenden um Aktionen auszulösen. Ich schätze mal ich denke da in die falsche Richtung... denn wenn ich in meinem ersten unsichtbaren Objekt nun folgendes im EndStepEvent eingebe:

    GML-Quellcode

    1. if room=Raum_1}if global.punkte <= 1000{room_goto(Raum_2);}if room=Raum_2}if global.punkte <= 5000{room_goto(Raum_3);}



    ... was mit Sicherheit falsch ist... erhalte ich nun wieder eine Fehlermeldung (die eigentlich damit nicht mal was damit zu tun hat). Die Fehlermeldung habe ich auch erst, nachdem ich den EndStepEvent umgeschrieben habe. Vorher lief das Game so wie ich wollte. Aber weisst ja, man probiert.... um so weniger Objekte um so besser für spätere Bearbeitung.

    Hier die Fehlermeldung:



    ___________________________________________
    FATAL ERROR in
    action number 1
    of End Step Event
    for object Unsichtbares_Objekt_1:


    COMPILATION ERROR in code action
    Error in code at line 2:
    }
    ^
    at position 2: Unexpected symbol in expression.


    VG Maik
  • Der_M schrieb:

    Hallo,

    das das die Abfragen sind habe ich verstanden, nur wie kann ich die weiter verwenden um Aktionen auszulösen. Ich schätze mal ich denke da in die falsche Richtung... denn wenn ich in meinem ersten unsichtbaren Objekt nun folgendes im EndStepEvent eingebe:

    GML-Quellcode

    1. if room=Raum_1}if global.punkte <= 1000{room_goto(Raum_2);}if room=Raum_2}if global.punkte <= 5000{room_goto(Raum_3);}



    ... was mit Sicherheit falsch ist... erhalte ich nun wieder eine Fehlermeldung (die eigentlich damit nicht mal was damit zu tun hat). Die Fehlermeldung habe ich auch erst, nachdem ich den EndStepEvent umgeschrieben habe. Vorher lief das Game so wie ich wollte. Aber weisst ja, man probiert.... um so weniger Objekte um so besser für spätere Bearbeitung.

    Hier die Fehlermeldung:



    ___________________________________________
    FATAL ERROR in
    action number 1
    of End Step Event
    for object Unsichtbares_Objekt_1:


    COMPILATION ERROR in code action
    Error in code at line 2:
    }
    ^
    at position 2: Unexpected symbol in expression.


    VG Maik




    So...:


    GML-Quellcode

    1. if room=Raum_1 and global.punkte <= 1000
    2. {
    3. room_goto(Raum_2)
    4. }
    5. if room=Raum_2 and global.punkte <= 5000
    6. {
    7. room_goto(Raum_3)
    8. }
  • Guten Morgen,

    vielen Dank für die Erklärung. Auch wenn meine Variante funktioniert, ist es keine elegante Lösung und möchte wie schon gesagt auf - nur ein unsichtbares Objekt - zugreifen.

    Ich habe dem zu folge nun alles im "Unsichtbaren_Objekt_1" das EndStepEvent (Persistent) so umgeändert:

    Code: 1

    GML-Quellcode

    1. if room=Raum_1 and global.punkte <= 1000{room_goto(Raum_2)}if room=Raum_2 and global.punkte <= 5000{
    2. room_goto(Raum_3)
    3. }
    4. if room=Raum_3 and global.punkte <= 10000
    5. {
    6. room_goto(Raum_4)
    7. }
    8. if room=Raum_4 and global.punkte <= 15000
    9. {
    10. room_goto(Raum_5)
    11. }
    12. if room=Raum_5 and global.punkte <= 20000
    13. {
    14. room_goto(Raum_6)
    15. }
    16. if room=Raum_6 and global.punkte <= 25000
    17. {
    18. room_goto(Raum_7)
    19. }
    20. if room=Raum_7 and global.punkte <= 30000
    21. {
    22. room_goto(Raum_8)
    23. }
    24. if room=Raum_8 and global.punkte <= 35000
    25. {
    26. room_goto(Raum_9)
    27. }
    Alles anzeigen



    Code: 2

    GML-Quellcode

    1. if (global.leben == 0) {game_restart();}



    Code: 3

    GML-Quellcode

    1. if (global.gesundheit == 0) {game_restart();}



    Im CreateEvent habe ich geschrieben:

    GML-Quellcode

    1. global.punkte=0;global.leben=3;global.gesundheit=10;



    In den unterschiedlichen Objekten habe ich entweder / oder stehen:

    GML-Quellcode

    1. global.punkte+=100;



    GML-Quellcode

    1. global.punkte-=100;



    GML-Quellcode

    1. global.leben-=1;



    GML-Quellcode

    1. global.gesundheit-=1;



    Das sieht auf den ersten Blick alles sehr gut aus.... aber!!! Wenn ich das Game nun starte rast das gleich bis Level 9 durch und bleibt da logischer Weise stehen.

    Hat da jemand eine Idee, was nun wieder schief läuft?

    VG Maik
  • Es müsste statt

    GML-Quellcode

    1. global.punkte <= 1000

    eigentlich

    GML-Quellcode

    1. global.punkte >= 1000

    heissen. Habe es weiter oben falsch geschrieben, sorry :S . Aber das hättest du doch trotzdem selber rausfinden können ;) .


    meine Schnecke i@________________________________________________________________________________________
    bitte nicht drauf treten!
  • Hallo Moos,

    du wirst lachen, aber das habe ich schon gestern weiter oben gesehen das die Klammer anders rum ist.... nur habe ich gedacht,"wer weiß vieleicht muss das jetzt so sein" und habe mir dabei dann auch weiter nichts gedacht.

    Jetzt funzt es aber genau wie ich mir das vorstellte.

    Nochmal herzlichen Dank für euere Hilfe.

    VG Maik
  • Ja ich weiss, als ich es oben so geschrieben habe, haben es plötzlich alle übernommen :D .
    Aber Fehler stecken immer wieder mal in solch nervenden und schwer zu findenden Details.

    Aber da es jetzt funktioniert ist ja alles gut.


    meine Schnecke i@________________________________________________________________________________________
    bitte nicht drauf treten!
  • Hallo noch einmal zusammen,


    also... der obrige Code funzt suppi, jedoch hatte ich vorhin nicht darauf geachtet, ob dieser auch meine gesammelten Punkte mit ins nächste Level nimmt.

    Das tut er so nicht!

    Wenn die gesammelten Punkte mit ins neue Level genommen werden sollen, muss man im CreateEvent den Code:

    GML-Quellcode

    1. global.punkte=0


    z.B. gegen diesen Code:

    GML-Quellcode

    1. if room=Raum_1 global.punkte = 0;if room=Raum_2 global.punkte = 1000;if room=Raum_3 global.punkte = 5000;if room=Raum_4 global.punkte = 10000;if room=Raum_5 global.punkte = 15000;if room=Raum_6 global.punkte = 20000;if room=Raum_7 global.punkte = 25000;if room=Raum_8 global.punkte = 30000;if room=Raum_9 global.punkte = 35000;
    2. global.leben=3;global.gesundheit=10;


    austauschen...

    Dann funzt das ganze echt easy!

    VG Maik