nach android convertierung erkennt er variablen nicht beim gamestart

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

    • nach android convertierung erkennt er variablen nicht beim gamestart

      hi ich habe ein spiel programmeirt, welches ausgezeichnet auf dem pc läuft.

      konvertiere ich es jetzt aber nach android so erscheint diese fehler meldung

      ​ ############################################################################################
      10-25 23:31:22.101 19637 19670 I yoyo : FATAL ERROR in
      10-25 23:31:22.101 19637 19670 I yoyo : action number 1
      10-25 23:31:22.101 19637 19670 I yoyo : of Other Event: Game Start
      10-25 23:31:22.101 19637 19670 I yoyo : for object obj_gamestart:
      10-25 23:31:22.101 19637 19670 I yoyo :
      10-25 23:31:22.101 19637 19670 I yoyo : local variable musictester(100001, -2147483648) not set before reading it.
      10-25 23:31:22.101 19637 19670 I yoyo : at gml_Object_obj_gamestart_Other_2
      10-25 23:31:22.101 19637 19670 I yoyo : ############################################################################################



      das liegt daran, dass ich im game-start event abfrage ob eine inidatei hinterlegt ist und wenn ja dann soll er 2 variablewerte daraus beziehen.

      besagte variable die er angeblich nicht kennt ist im vorfeld mit var musictester; inizialisiert worden. das ist auch der grund warum windows kein problem damit hat. warum android jetzt allerdings behauptet die variable nicht zu kennen verstehe ich nicht und hoffe das ihr mir da weiterhelfen könnt.

      lg


    • setze immer die variable welche du lesen willst

      zb. Create Event

      Quellcode

      1. global.money=0
      2. ini_open("money.ini");
      3. if !ini_section_exists("amount")
      4. {
      5. ini_write_real("amount","money" , 0);
      6. }
      7. ini_close();
      8. ini_open("money.ini");
      9. global.money = ini_read_real( "amount","money" , 0 );
      10. ini_close();
    • ist die local variable musictester woanders? mach global draus....


      for object obj_gamestart: ----> du setzt sie hier
      local variable musictester(100001, -2147483648) not set before reading it. ----> er kanns nicht lesen
      at gml_Object_obj_gamestart_Other_2 ---->du rufst sie hier ab deswegen kann er sie nicht lesen weil sie hier ist "obj_gamestart"

      also ich denke wenn du draus global.machst dann sollte das helfen

      oder du setzt sie hier ----> obj_gamestart_Other_2
    • Also es ist im Prinzip so das ich schreibe:

      Var musiktester;
      musiktester = ini_read....

      Es wird also unmittelbar davor deklariert. Wie gesagt Windows hat kein Problem damit Android aber plötzlich schon. Ich brauch die nur ganz kurz an dieser Stelle. Eine globale variable ist nicht nötig.


      Edit

      Ich werde später versuchen die variabel im create festzulegen. Create wird ja noch vor gamestart ausgeführt. Aber schön ist anders


    • @Eddysoulo
      Der Room Creation Code wird nach den Creates aller Objekten ausgeführt. So wie in diesem Fall wird die Variable aber schon früher gebraucht
      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
    • sorry aber das ist so nicht ganz korrekt:

      Game StartThis special event is triggered only once in the whole game and only for those instances with actions or code placed in the event. These instances must be present in the first room of the game and have been placed there in the room editor, rather than have been created dynamically. It should be noted that this event happens after the create event of all instances and so can contain code or actions with variables that have been previously defined in that event. This event is typically defined in only one "controller" object and is typically used to initialize global variables, start music, read from files and any other thing that is usually only done once at the start of a game.



      hier der code den ich meinte:

      Quellcode

      1. if ini_key_exists('optionen','steuerung'){
      2. var steuerungstester = ini_read_string('optionen','steuerung','Existiert nicht');
      3. if(steuerungstester="DUD"){//drag and drop
      4. global.steuerung = 1;
      5. }
      6. else if(steuerungstester="PAC"){//point and click
      7. global.steuerung=2;
      8. }
      9. else if(steuerungstester="JS"){//joistik
      10. global.steuerung=3;
      11. }
      12. ini_close();
      13. }
      Alles anzeigen


      es endert sich nichts wenn ich var steuerungstester vorher alleine inizialisiere. die fehlermeldung bleibt die gleiche.


    • It should be noted that this event happens after the create event of all instances

      ist übersetzt:
      Es sollte beachtet werden, dass dieses Event nach dem Create Event von allen Instanzen passiert.
      Ich sehe da jetzt kein Unterschied zu meiner Aussage ^^

      Zu dem Code:
      die Variable musictester ist dort nicht vorhanden. Der Fehler liegt in einem anderen Code
      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
    • richtig. ich war gedanklich beim create event


      ich hab den falschen teil gepostet

      Quellcode

      1. ini_open("saveoptions.ini");
      2. if ini_key_exists('optionen','music'){
      3. var musictester = ini_read_string('optionen','music','Existiert nicht');
      4. if(musictester ='on'){
      5. global.music = 1;
      6. }
      7. }
      8. else {
      9. if(musictester='off'){
      10. global.music=0;
      11. }
      12. }
      13. if ini_key_exists('optionen','steuerung'){
      14. var steuerungstester = ini_read_string('optionen','steuerung','Existiert nicht');
      15. if(steuerungstester="DUD"){//drag and drop
      16. global.steuerung = 1;
      17. }
      18. else if(steuerungstester="PAC"){//point and click
      19. global.steuerung=2;
      20. }
      21. else if(steuerungstester="JS"){//joistik
      22. global.steuerung=3;
      23. }
      24. ini_close();
      25. }
      Alles anzeigen


      edit: ich habs jetzt einfach im create event deklariert, aber finde das unübersichtich und wüsste trotzdem gerne warum android damit ein problem hat wärend windows kein problem hat


    • Ich glaube in Android gibt es kein GameStart Event, sowie kein GameEnd Event.

      Edit: In den Docs steht dazu nichts ^^
      Fehler wahrscheinlich woanders.
      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
    • Wenn dir das zu unübersichtlich ist, pack alle variablen die zum Spielstart brauchst in ein Script. Dann kannst du im Create Event mit einer Zeile das Script aufrufen und die Variablen sind deklariert und aufgeräumt.

      Oder teile dein Execute Script Event in mehrere nach einander auf. In einem Teil sind dann nur die Variablen drin... im anderen der ini teil... im dritten dann Spieleinstellunge wie punkte usw... dann steht nicht alles auf einem Haufen.