problem beim grid speichern

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

    • problem beim grid speichern

      Handy....


      Hallo.

      Mein Problem ist folgendes...

      Wenn ich ein 100x100grid erstelle und in dieses objekt_indexe setze(also 0bis zum beispiel 999)

      Dieses grid dann in eine ini lade
      Und abspeichere.

      Später will ich dann diese ini datei mit ca 240024 ziffern dann wieder laden und somit.in ein neues grid diese gebilde aus objekten spawnen

      Mein problem ist nun das speichern...

      Wenn ich dieses grid lade und per switch die einzelnen zellen prüfe...dann passiert gar nichts...
      Ändert sich der inhalt irgendwie?

      Oder.habt.ihr erfahrungen, was ich hätte falsch machen können

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

    • Interesant wird es erst ab Zeile 45.


      GML-Quellcode

      1. ///buttons +++ Resultat(saveGrid)
      2. var X = window_mouse_get_x();
      3. var Y = window_mouse_get_y();
      4. var dispX = window_get_width();
      5. var dispY = window_get_height();
      6. if(mouse_check_button(mb_left))
      7. {
      8. if( (X > dispX*0.8) && (X<dispX*0.9) && (Y < 100) ) // Wenn Button 1
      9. {
      10. canBuild = true;
      11. }
      12. if( (X > dispX*0.9) && (X<dispX*1) && (Y < 100) ) // Wenn Button 1
      13. {
      14. if(show_question("Ready?"))
      15. {
      16. ///save
      17. var FAILVALUE = 0; // wenn != 0 , dann ist ein BodyPart außerhalb
      18. for(var j = 0; j < i; j++) // check, ob außerhalb(X&Y)
      19. {
      20. if( (instX[j] < x1) || (instX[j]>x1+gridWidth) || (instY[j] < y1) || (instY[j]>y1+gridHeight) )
      21. {
      22. show_debug_message("FAIL");
      23. FAILVALUE++;
      24. }else
      25. {
      26. if( (j>= (i-1)) && (FAILVALUE == 0) )// geht nur beim letzten bodyPart durch und wenn kein Fehler vorliegt
      27. {
      28. //GRID
      29. show_debug_message("GOOD");
      30. newShip = ds_grid_create(gridWidth,gridHeight)
      31. for(var h = 0; h < ds_grid_height(newShip) ; h++) // Höhe
      32. {
      33. for(var w = 0; w < ds_grid_width(newShip) ; w++) // Breite
      34. {
      35. for(var o = 0; o < i; o++)//Schleift durch inst[]
      36. {
      37. if( (instX[o]== w+x1) && (instY[o] == h+y1)) //Prüft, wo im Grid
      38. {
      39. show_debug_message("Obj: "+string(inst[o].object_index)+" X: "+string(w)+"Y: "+string(h));
      40. switch(inst[o].object_index)
      41. {
      42. case obj_dreieck: ds_grid_set(newShip,w,h,obj_dreieck); break;
      43. case obj_body_viereck: ds_grid_set(newShip,w,h,obj_body_viereck); break;
      44. case obj_seite: ds_grid_set(newShip,w,h,obj_seite); break;
      45. case obj_body_trapez: ds_grid_set(newShip,w,h,obj_body_trapez); break;
      46. case obj_body45: ds_grid_set(newShip,w,h,obj_body45); ; break;
      47. case obj_body__45: ds_grid_set(newShip,w,h,obj_body__45); break;
      48. case obj_body_horri_balken: ds_grid_set(newShip,w,h,obj_body_horri_balken); break;
      49. case obj_body_boden: ds_grid_set(newShip,w,h,obj_body_boden); break;
      50. default: ds_grid_set(newShip,w,h,0);
      51. }
      52. }
      53. }
      54. }
      55. }
      56. //into String
      57. ini_open(working_directory + "ships\ship.ini");
      58. var str = ds_grid_write(newShip);
      59. ini_write_string("SHIPS", "SHIP1",str );
      60. ini_close();
      61. }
      62. }
      63. }
      64. }
      65. }
      66. }
      Alles anzeigen

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

    • GML-Quellcode

      1. //ship3
      2. ship[3] = ds_grid_create(WIDTH,HEIGHT);
      3. ini_open(working_directory + "ships\ship.ini");
      4. ds_grid_read(ship[3], ini_read_string(working_directory + "ships\ship.ini", "SHIP1", ""));
      5. ini_close();
      6. show_debug_message(string(working_directory));
      7. for(var h = 0; h < ds_grid_height(ship[3]);h++)
      8. {
      9. for(var w = 0; w < ds_grid_width(ship[3]);w++)
      10. {
      11. var part = ds_grid_get(ship[3],w,h);
      12. if(part != 0) /////////////////////////////////////////////IST IMMER 0
      13. {
      14. show_debug_message(string(part.object_index));
      15. switch(part)
      16. {
      17. case obj_dreieck: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,77); break;
      18. case obj_body_viereck: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body_viereck); break;
      19. case obj_seite: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_seite); break;
      20. case obj_body_trapez: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body_trapez); break;
      21. case obj_body45: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body45); break;
      22. case obj_body__45: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body__45); break;
      23. case obj_body_horri_balken:show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body_horri_balken); break;
      24. case obj_body_boden: show_debug_message(string(part)) break; // ds_grid_set(newShip,w,h,obj_body_boden); break;
      25. default: show_debug_message("gg");
      26. }
      27. }
      28. }
      29. }
      Alles anzeigen

    • Habe den Fehler gefunden....xD dümmer gehts nicht.

      Ich lass euch mal den Spaß den Fehler zu finden.

      Tipp:
      in diesem Code ist er

      GML-Quellcode

      1. //ship3
      2. ship[3] = ds_grid_create(WIDTH,HEIGHT);
      3. ini_open(working_directory + "ships\ship.ini");
      4. ds_grid_read(ship[3], ini_read_string(working_directory + "ships\ship.ini", "SHIP1", ""));
      5. ini_close();
      6. show_debug_message(string(working_directory));
      7. for(var h = 0; h < ds_grid_height(ship[3]);h++)
      8. {
      9. for(var w = 0; w < ds_grid_width(ship[3]);w++)
      Alles anzeigen
    • kann es sein, dass es daran liegt, dass du SHIP1 statt SHIP3 ausliest?
      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
    • nee,aber das kannst du ja nicht wissen wie ich es mit den Namen handhabe.

      GML-Quellcode

      1. ds_grid_read(ship[3], ini_read_string(working_directory + "ships\ship.ini", "SHIP1", ""));



      Das ist falsch^^

      Sollte eigentlich so sein

      GML-Quellcode

      1. ds_grid_read(ship[3], ini_read_string("SHIPS", "SHIP1", ""));