游戏逻辑文件

时间:2011-10-25 17:23:12

标签: memory-management lua corona

我正在为移动设备创建我的第一款游戏,并使用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]

当你说商店图片名称或路径时,我说我的项目根目录中的'graphics'文件夹中有一个名为red_apple的图像;以下是正确的吗?

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

另外,我的游戏是2D,所以我希望学习曲线不会太陡,虽然我知道会有很多我可能从未遇到过的东西,但是我不认为这是最好的学习的方式 - 以及一点点幼稚也从未受到伤害:P

1 个答案:

答案 0 :(得分:2)

首先 - 如果这是你的第一场比赛,从小开始。如果你试图从一切开始(等级等),你将会被复杂性所淹没。

现在,关于你的问题 - 这取决于。大多数情况下,“级别”只是常规的lua文件。

你可以让他们返回一张桌子。在该表中,您可以添加任何类型的Lua对象 - 字符串,函数,其他表等。

例如,在这个.lua文件中,我返回一个包含两个字段的表:'difficulty'(整数)和'map'(多行字符串)。这些可用于在“级别加载器”功能上生成级别。

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

关于图像 - 我认为你不能直接将它们存储在关卡中。但您可以(例如)存储图像名称或路径。并使“地图加载器”在阅读地图的同时“即时”加载这些新图像。

但正如我之前所说,这有点过于复杂。从较小的东西开始,没有水平。