Moinsen ihr lieben Leutz,
Folgendes:
Ich versuche mithilfe einer Datei die Positionen von mehreren Instanzen zu speichern und wieder laden. Speichern funktioniert tadellos, die Datei sieht dann folgendermaßen aus:
Alles anzeigen
Wenn ich diese Werte wieder versuche zu laden mit:
Alles anzeigen
failt er. Und zwar wird der erste Punkt korrekt erstellt. Er ist genau an der richtigen Position. Dagegen alle Punkte die danach kommen, haben zwar die korrekte Y-Koordinate, jedoch der X-Wert ist immer gleich 0. Anscheinend kommt bei file_text_read_real immer 0 heraus. (Ich habe das auch schon getestet, indem ich im Debug mode die Cariable create_x abgefragt habe. Wenn ich nach der Variable str abfrage kommt auch der korrekte Wert als String heraus. Wenn ich aber
statt file create_x=file_text_read_real(lvl) verwende, kommt ebenfalls wieder 0 heraus.
Im Code für die Speicherung der Koordinaten verwende ich übrigens nur file_text_write_real()
So, meine Freunde der Nacht, wer weiß was?
Folgendes:
Ich versuche mithilfe einer Datei die Positionen von mehreren Instanzen zu speichern und wieder laden. Speichern funktioniert tadellos, die Datei sieht dann folgendermaßen aus:
Quellcode
- new line
- 402
- 233
- 0
- 694
- 271
- 0
- 954
- 302
- 0
- 1177
- 359
- 0
- 1312
- 436
- 0
- 1336
- 519
- 1
- 1286
- 649
- 1
- 979
- 836
- 1
- 668
- 745
- 1
- 562
- 628
- 1
- 682
- 566
- 1
- 971
- 556
- 1
- 1099
- 529
- 1
- 1126
- 435
- 1
- 1126
- 422
- 1
- 1046
- 420
- 1
- 815
- 423
- 1
- 481
- 495
- 1
- 450
- 602
- 1
- 484
- 695
- 1
- 618
- 774
- 1
- 990
- 913
- 1
- 1254
- 877
- 1
- 1419
- 708
- 1
- 1421
- 492
- 1
- 984
- 136
- 1
- 629
- 92
- 1
- 264
- 238
- 1
- 426
- 369
- 1
- 954
- 331
- 1
- 1147
- 390
- 1
- 1282
- 600
- 1
- 962
- 755
- 1
- 639
- 645
- 1
- 833
- 606
- 1
- 1113
- 598
- 1
- 1173
- 522
- 1
- 1129
- 399
- 1
- 700
- 379
- 1
- 361
- 462
- 1
- 381
- 726
- 1
- 623
- 877
- 1
- 1056
- 976
- 1
- 1353
- 936
- 1
- 1550
- 644
- 1
- 1488
- 319
- 1
- 988
- 43
- 1
- 570
- 27
- 1
- 227
- 193
- 1
- 204
- 359
- 2
- 317
- 422
- 2
- end of lvl
Wenn ich diese Werte wieder versuche zu laden mit:
GML-Quellcode
- fname=get_open_filename("*.lvl","");
- lvl=file_text_open_read(fname);
- line_id=-1
- str=file_text_read_string(lvl)
- file_text_readln(lvl)
- counter=0
- //do { //zu Testzwecken habe ich die Schleife auskommentiert
- line_id+=1
- point_id=0
- do {
- counter+=1
- create_x=file_text_read_real(lvl);
- file_text_readln(lvl)
- create_y=file_text_read_real(lvl);
- file_text_readln(lvl)
- create_depth=file_text_read_real(lvl);
- file_text_readln(lvl);
- hold_id=instance_create(create_x,create_y,obj_point);
- point_x[line_id,point_id]=create_x;
- point_y[line_id,point_id]=create_y;
- point_depth[line_id,point_id]=create_depth;
- hold_id.line_id=line_id;
- hold_id.point_id=point_id;
- hold_id.pointdepth=point_depth[line_id,point_id];
- point_id+=1
- str=file_text_read_string(lvl);
- } until (str="new line"||counter=4) //zu Testzwecken lasse ich nur 4 Punkte lesen.
- counter+=1
- //str=file_text_read_string(lvl);
- //} until str="end of lvl"||counter>200
- file_text_close(lvl);
failt er. Und zwar wird der erste Punkt korrekt erstellt. Er ist genau an der richtigen Position. Dagegen alle Punkte die danach kommen, haben zwar die korrekte Y-Koordinate, jedoch der X-Wert ist immer gleich 0. Anscheinend kommt bei file_text_read_real immer 0 heraus. (Ich habe das auch schon getestet, indem ich im Debug mode die Cariable create_x abgefragt habe. Wenn ich nach der Variable str abfrage kommt auch der korrekte Wert als String heraus. Wenn ich aber
statt file create_x=file_text_read_real(lvl) verwende, kommt ebenfalls wieder 0 heraus.
Im Code für die Speicherung der Koordinaten verwende ich übrigens nur file_text_write_real()
So, meine Freunde der Nacht, wer weiß was?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lolliger_joj ()