【发布时间】:2011-08-03 00:08:10
【问题描述】:
我是使用 Corona SDK 和 Lua 开发的新手。 目前我严格使用 main.lua 文件。 Lua 中是否有任何方法(我确定有)将源代码分解为合乎逻辑的单独文件?
示例: 1.main.lua 2.实体.lua 3.Settings.lua
谢谢!
【问题讨论】:
我是使用 Corona SDK 和 Lua 开发的新手。 目前我严格使用 main.lua 文件。 Lua 中是否有任何方法(我确定有)将源代码分解为合乎逻辑的单独文件?
示例: 1.main.lua 2.实体.lua 3.Settings.lua
谢谢!
【问题讨论】:
objects.lua:
local M = {}
M.a = 3
return M
main.lua:
local objects = require('objects')
println(objects.a) --> 3
Lua 用户的 wiki 中有一个很好的讨论:http://lua-users.org/wiki/LuaModuleFunctionCritiqued。你应该阅读它。
【讨论】:
这是我为演示您所询问的内容而编写的示例:http://developer.anscamobile.com/code/object-oriented-sample-game-framework
编辑:论坛帖子似乎不再存在,所以这里有一个下载示例代码的链接https://app.box.com/shared/uz5beg19h8
它将事物分成多个文件,并使用一种装饰器模式来添加诸如“级别”或“浮动字符”之类的功能。
【讨论】:
您不需要只使用 main.lua 文件。您可以根据需要创建单独的 .lua 文件 -
1- 如果您为此使用许多场景/视图/类,您可以为不同的场景/视图/类创建单独的 .lua 文件并调用这些单独的 .lua 使用 storyboard 文件。
2- 您还可以创建单独的 .lua 文件来创建您可以在任何类中访问的对象。
3- 提供了很多.lua文件,如appirater.lua、ui.lua、json.lua。
【讨论】: