Файл логики игры - PullRequest
       22

Файл логики игры

0 голосов
/ 25 октября 2011

Я нахожусь в процессе создания моей первой игры для мобильного устройства и использую Corona для этого на языке сценариев Lua.

Я слышал, что при создании каждого уровня внутри отдельного файла разумнее использовать память, чтобы сохранять все одинаковые в одном логическом файле и загружать его в каждый файл уровня. Какие вещи должны быть внутри этого файла, функции, спрайты и т. Д.?

Кроме того, как мне загрузить это в разные файлы, если все мои переменные являются локальными? Я пробовал требовать «логики» - моего имени файла, содержащего все мои функции, однако я не уверен, как заставить функции, написанные внутри, «активировать», потому что в настоящее время они этого не делают.

Если вам нужно, чтобы я опубликовал какой-либо код, я с удовольствием это сделаю. Спасибо за чтение!


Обновление

Спасибо за идею таблиц, теперь я сохранил все свои функции внутри одной, это выглядит так:

-- Logic File 
local functionTable = {}
functionTable[1] = onTouch,
functionTable[2] = physicsStart,
functionTable[3] = onComplete,
functionTable[4] = winCondition

Однако я изо всех сил пытаюсь найти способ вызывать эти функции в моих файлах уровней. Вот то, что я пробовал, но это не работает, знаете ли вы способ улучшить это?

-- Level File
local logic = require "logic"
logic.functionTable[1]
logic.functionTable[2]
logic.functionTable[3]
logic.functionTable[4]

Когда вы говорите, что храните имена или пути к изображениям, скажите, что у меня есть изображение с именем red_apple, расположенное в моей папке 'graphics' в корне моего проекта; будет ли правильно следующее?

local imagePath = {}
imagePath[1] = graphics/red_apple

Кроме того, моя игра 2D, поэтому я надеюсь, что кривая обучения не слишком крутая, хотя я понимаю, что будет много вещей, с которыми я, возможно, никогда не сталкивался, и не понимаю, однако я думаю, что это лучший способ учиться - и немного наивности никогда не повредит так же: P

1 Ответ

2 голосов
/ 26 октября 2011

Первый - если это ваша первая игра, начните с малого. Если вы попытаетесь начать со всего (уровней и т. Д.), Вы будете переполнены сложностью.

Теперь по поводу вашего вопроса - это зависит. В большинстве случаев «уровни» - это обычные файлы lua.

Вы можете заставить их вернуть стол. Внутри этой таблицы вы можете добавлять любые объекты Lua - строки, функции, другие таблицы и т. Д.

Например, в этом файле .lua я возвращаю таблицу с двумя полями: «сложность» (целое число) и «карта» (многострочная строка). Их можно использовать для генерации уровня в функции «загрузчик уровней».

-- level1.lua
local level = {}
level.difficulty = 1
level.map = [[
xxxxxx
x    x
x    x
xxxxxx  
]]
return level

Относительно изображений - я не думаю, что вы можете хранить их непосредственно на уровне. Но вы можете (например) хранить имена изображений или пути. И заставьте «загрузчик карт» загружать эти новые изображения «на лету», читая карту.

Но, как я уже говорил, это слишком сложно. Начните с чего-то меньшего, без уровней.

...