在Lua中创建要执行的任务列表

时间:2013-08-12 16:48:04

标签: lua gideros

我正在Gideros(使用Lua)创建一个回合制游戏,我遇到了记录每个演员事件的问题。我希望玩家能够为他们控制的每个角色设置路径,方向和火力事件。我有一个使用像

这样的多维数组的想法
TaskList = { 1 = { "MoveTo", {3,5} }, 
             2 = { "AimTo", {5,2} }, 
             3 = { "Fire" }, 
             4 = { "MoveTo", {23,21} }
然而,这似乎是一种非常烦人且效率低下的方法。有没有明显更好的方法?感谢。

2 个答案:

答案 0 :(得分:4)

我建议如下:

  • 删除1 =2 =等。这与“数组”初始化语法有关。
  • 使用空格来提高可读性。
  • 通过使用名称而不是索引,考虑在操作表中 more verbose。 (这也将使结构更加面向未来,因为您可以添加/删除对某些属性的支持,而无需更改每个属性所在的索引。)

例如:

TaskList = {
    { action="MoveTo", location={3,5} },
    { action="AimTo",  location={5,2} },
    { action="Fire" },
    { action="MoveTo", location={23,21} }
}

答案 1 :(得分:1)

通过函数调用构建数组怎么样?

function MoveTo( a, b ) return { action="MoveTo", location={ a, b } } end
function AimTo( a, b ) return { action="AimTo", location={ a, b } } end
function Fire() return { action="Fire" } end

TaskList = { MoveTo( 3, 5 ),
             AimTo( 5, 2 ), 
             Fire(),
             MoveTo( 23, 21 ) }