Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management 游戏逻辑文件_Memory Management_Lua_Coronasdk - Fatal编程技术网

Memory management 游戏逻辑文件

Memory management 游戏逻辑文件,memory-management,lua,coronasdk,Memory Management,Lua,Coronasdk,我正在为移动设备创建我的第一个游戏,并使用Corona用Lua脚本语言完成它 我听说,在不同的文件中创建每个级别时,将所有保持不变的内容放在一个逻辑文件中,并将其加载到每个级别的文件中,内存会更智能。该文件中应该包含哪些类型的内容、函数、精灵等 另外,如果我的所有变量都是本地变量,我如何将其加载到不同的文件中? 我尝试过要求“逻辑”——我的文件名包含我的所有函数,但是我不确定如何将里面的函数写入“激活”,因为目前它们没有 如果你需要我发布任何代码,我很乐意这样做。 谢谢你的阅读 更新 感谢您提

我正在为移动设备创建我的第一个游戏,并使用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目录层次结构的方法。