ich versuche mein dynamisches Map-System auf eine ds_grid umzustellen. Da ich bisher noch nicht damit gearbeitet habe, kann es gut sein, dass ich das Prinzip missverstanden hab. Ich versuche in diesem Grid mehrere Maps(Chunks trifft es vielleicht besser) im Speicher zu halten, die ich nur bei Bedarf (View fliegt drüber) rendere.
Vorgestellt hab ich mir das ganze so:
Die Daten der Map werden aus einer Textdatei zeilenweise gelesen und sollen in die erstellte ds_grid geladen werden:
Alles anzeigen
scheinbar ist in jeder der Variablen jedoch 0 drinnen, der Fehler passiert defintiv beim einfügen/auslesen in die ds_grid.
EDIT: ungekürzter Code
Spoiler anzeigen
Alles anzeigen
Vorgestellt hab ich mir das ganze so:
Die Daten der Map werden aus einer Textdatei zeilenweise gelesen und sollen in die erstellte ds_grid geladen werden:
GML-Quellcode
- map = ds_grid_create(128, 4);
- var i; i=0;
- while(reafile()){
- obj = fields[0];
- show_message(obj); //Ausgabe: oGrass
- xx = real(fields[1]);
- yy = real(fields[2]);
- zz = real(fields[3]);
- //execute_string("instance_create("+string(xx)+", "+string(yy)+", "+obj+")");
- ds_grid_add(map, 0, i, obj);
- show_message(ds_grid_get(map, 0, i)); //Ausgabe: 0
- ds_grid_add(map, 1, i, xx);
- ds_grid_add(map, 2, i, yy);
- ds_grid_add(map, 2, i, zz);
- file_text_readln(file);
- i+=1;
- }
scheinbar ist in jeder der Variablen jedoch 0 drinnen, der Fehler passiert defintiv beim einfügen/auslesen in die ds_grid.
EDIT: ungekürzter Code
GML-Quellcode
- var file_name; file_name = argument0;
- /*var xversatz; xversatz = argument1;
- var yversatz; yversatz = argument2;*/
- var file; file = file_text_open_read(file_name);
- var mapSizeX, mapSizeY, mapName;
- map = ds_grid_create(176, 4);
- var i; i = 0;
- while(!file_text_eof(file)){
- line = file_text_read_string(file);
- split_string(line, " ", "fields");
- switch(fields[0]){
- case "meta":
- if(fields[1] == "map"){
- switch(fields[2]){
- case "size":
- mapSizeX = fields[3];
- mapSizeY = fields[4];
- break;
- case "name":
- mapName = fields[3];
- break;
- case "left":
- case "right":
- case "up":
- case "down": //
- // show_message("down: "+fields[3])
- // loadSideMap('assets/maps/'+string(fields[3]), real(fields[4]), real(fields[5]));
- break;
- }
- }break;
- default:
- obj = fields[0];
- show_message(string(obj));
- xx = real(fields[1]);
- show_message(xx);
- yy = real(fields[2]);
- show_message(yy);
- // zz = fields[3];
- //execute_string("instance_create("+string(xx)+", "+string(yy)+", "+obj+")");
- //ds_grid_add(global.map, 0, i, obj);
- ds_grid_set(map, 0, i, string(obj));
- show_message(ds_grid_get(map, 0, i));
- ds_grid_set(map, 1, i, xx);
- show_message(ds_grid_get(map, 1, i));
- ds_grid_set(map, 2, i, yy);
- show_message(ds_grid_get(map, 2, i));
- break;
- }
- i+=1;
- file_text_readln(file);
- }
- file_text_close(file);
- return map;
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von domis4 ()