创建一个Lua任务清单。

我正在使用 Gideros(它使用 Lua)创建一个回合制游戏,我遇到了一个记录每个角色事件的问题。我希望玩家能够为他们控制的每个角色设置路径、方向和触发器。我有一个使用多维数组的想法,例如

TaskList = { 1 = { "MoveTo", {3,5} },
             2 = { "AimTo", {5,2} },
             3 = { "Fire" },
             4 = { "MoveTo", {23,21} }

但这似乎非常麻烦和低效。有没有更好的方法?谢谢。

点赞
用户501250
用户501250

我建议采取以下措施:

  • 删除 1 =2 = 等等。这些都是“数组”初始化语法的隐式表示。
  • 使用空格来提高可读性。
  • 考虑在动作表中使用名称而非索引,使得结构更具有未来性(也就是说,你可以添加/删除支持某些属性而无需更改每个属性所在的索引)。

例如:

TaskList = {
    { action="移动到", location={3,5} },
    { action="瞄准",  location={5,2} },
    { action="射击" },
    { action="移动到", location={23,21} }
}
2013-08-12 17:09:35
用户12291
用户12291

将下面翻译成中文并且保留原本的 markdown 格式

是不是可以通过函数调用来构建数组呢?

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 ) }
2013-08-13 13:26:59