Сделал в игре редактор уровней, только когда доделал до кнопок Сохранить/Открыть, понял что в GMS убрали функции типа execute_file. Раньше в GM8 я просто создавал файл и записывал - instance_create(obj_wall,string(x),string(y))... и т.д... Потом этот файл тупо запускал функцией execute_file и всё работало. Теперь этих функций нет, даже похожих. INI не подходят.
Кто может подсказать что мне делать?
В файл мне нужно сохранять все тайлы, объекты и всякие настройки самой карты и самих объектов.
Сохранение
Код
var f; f=file_text_open_write("level.lvl"); with obj_wall {file_text_write_string(f,"instance_create(obj_wall,"+string(x)+","+string(y)+")");file_text_writeln(f)} with obj_bonus {file_text_write_string(f,"instance_create(obj_bonus,"+string(x)+","+string(y)+")");file_text_writeln(f)} file_text_close(f)
Открытие
Код
execute_file("level.lvl")
P.s Писал от руки, могу здесь ошибаться.
Сообщение отредактировал maksim1221232 - Понедельник, 25 Января 2016, 00:13
YellowAfterlife, Способ конечно не очень, но это лучше чем ничего. Спасибо, проблема решена.
Добавлено (29 января 2016, 00:46) --------------------------------------------- Пока тема не закрыта, спрошу тут опять про сохранения в файл.
Сохраняю объекты и тайлы в файл, при открытии карты, объекты ставятся нормально, а тайлы нет. Уже несколько часов сижу и незнаю что делать.
Код
file=file_text_open_write(file) file_text_writeline_string(file,string(name)) file_text_writeline_string(file,string(typemap))//dm,ctf,tdm,ze,tnr; file_text_writeline_real(file,instance_number(obj_editorobject)); with (obj_editorobject) { file_text_write_real(file,sprite_index); file_text_write_real(file,x); file_text_writeline_real(file,y); } var tiles=tile_get_ids(); file_text_writeline_real(file,array_length_1d(tiles)) for (var i=0; i<array_length_1d(tiles); i++;) { file_text_write_real(file,tile_get_background(tiles[i])); file_text_write_real(file,tile_get_left(tiles[i])); file_text_write_real(file,tile_get_top(tiles[i])); file_text_write_real(file,tile_get_width(tiles[i])); file_text_write_real(file,tile_get_height(tiles[i])); file_text_write_real(file,tile_get_x(tiles[i])); file_text_write_real(file,tile_get_y(tiles[i])); file_text_write_real(file,tile_get_depth(tiles[i]));file_text_writeln(file); } file_text_close(file)
Код
file=file_text_open_read(file) var name,type,i,xx,yy; name=file_text_readline_string(file) type=file_text_readline_string(file) i=file_text_readline_real(file) if (i>0) { repeat(i) { switch(file_text_read_real(file)) { case spr_wall: xx=file_text_read_real(file) yy=file_text_readline_real(file) with instance_create(xx,yy,obj_editorobject) {sprite_index=spr_wall} break; } } } i=file_text_readline_real(file); //show_message(string(i)) repeat(i) { file_text_read_real(file)//Эту строчку нужно ставить ниже вместо tl_stone1, но тогда выдаёт ошибку типо такого бэкграунда не существует. tile_add(tl_stone1,file_text_read_real(file),file_text_read_real(file),file_text_read_real(file),file_text_read_real(file),file_text_read_real(file),file_text_read_real(file),file_text_readline_real(file)) } file_text_close(file)