Как получать значения массивов из файлов в Love2d?

Есть движок игры, который написан на lua и использует фреймворк love2d, он (движок) хранит всё в массивах, например координаты стен.
Я хочу чтоб каждый уровень был отдельным файлом в корне программы, например game.exe/levels/1.level
Нужно получать значения массивов, например player = levelNumber.level(player) как это сделать?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
dollar
@dollar Куратор тега Lua
Делай добро и бросай его в воду.
Для начала нужно определиться с форматом хранения в файле. Так как это Lua, то проще будет использовать какой-то текстовый формат (а не бинарный). Плюс удобство будет в том, что файл легко можно будет просматривать и/или редактировать в текстовом редакторе.

Далее там определите для себя, какой будет формат в точности. Например, можно так:
57,49,1|45,60,1|40,30,0
Где первые две цифры - это X и Y, а последняя указывает на то, вертикальная стена или горизонтальная. Отдельные стены разделены символом |
У вас будет, естественно, какой-то другой формат, в зависимости от игры.

Далее необходимо почитать документацию к Love2D о том, как работать с файлами. Попробуйте создать файл, записать, прочитать и т.д., чтобы освоиться. Например, запишите числовую переменную x в файл, а потом прочитайте в переменную - y.

Затем нужен алгоритм, которые разбивает строку на отдельные элементы таблицы. То есть сначала делит на куски, где разделитель "|". А потом каждый кусок тоже нужно поделить разделителем ",". Ну а дальше строковые кусочки переводим в числа, используя функцию Lua tonumber(). Затем их можно фасовать в любые структуры, какие хотите - любые таблицы, простые или сложно устроенные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы