Memory management 游戏逻辑文件
我正在为移动设备创建我的第一个游戏,并使用Corona用Lua脚本语言完成它 我听说,在不同的文件中创建每个级别时,将所有保持不变的内容放在一个逻辑文件中,并将其加载到每个级别的文件中,内存会更智能。该文件中应该包含哪些类型的内容、函数、精灵等 另外,如果我的所有变量都是本地变量,我如何将其加载到不同的文件中? 我尝试过要求“逻辑”——我的文件名包含我的所有函数,但是我不确定如何将里面的函数写入“激活”,因为目前它们没有 如果你需要我发布任何代码,我很乐意这样做。 谢谢你的阅读Memory management 游戏逻辑文件,memory-management,lua,coronasdk,Memory Management,Lua,Coronasdk,我正在为移动设备创建我的第一个游戏,并使用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首先-如果这是你第一次玩游戏,从小开始。如果你尝试从每件事(级别等)开始,你会被复杂度所超越 现在,关于你的问题,这要看情况而定。大多数情况下,“级别”只是常规的lua文件 你可以让他们还一张桌子。在该表中,您可以添加任何类型的Lua对象—字符串、函数、其他表等 例如,在这个.lua文件中,我返回一个包含两个字段的表:“困难”(一个整数)和“映射”(一个多行字符串)。这些可用于在“液位加载器”功能上生成液位
-- level1.lua
local level = {}
level.difficulty = 1
level.map = [[
xxxxxx
x x
x x
xxxxxx
]]
return level
关于图像-我不认为您可以将它们直接存储在关卡中。但您可以(例如)存储图像名称或路径。并让“地图加载器”在阅读地图时“动态”加载这些新图像
但正如我之前所说,这有点太复杂了。从更小的开始,没有级别。Lua strings可以保留任何二进制字符串,因此如果您有从字符串读取图像的方法,您可以嵌入图像。但这并不是一个好主意。我喜欢将内容放入.zip目录层次结构的方法。