你好!目前我正在为我的游戏制作一个“简单”的动画系统。但是我在处理表格时遇到了一些问题。我创建了一个设置文件,用于加载动画的信息(具体来说,它加载动画的别名和包含帧数)。因此,我的设置文件看起来像这样:(animsettings.lua)
animlist = {idle, run}
animlist.idle = { frames, alias }
animlist.idle.frames = 1
animlist.idle.alias = "idle"
animlist.run = { frames, alias }
animlist.run.frames = 5
animlist.run.alias = "run"
我想访问每个动画的属性(帧和别名),并使用它们的索引,例如:animlist[1][1]应该是animlist.idle.frames的值,即1。所以,我是否有误解,或者这个东西应该可以工作?因为当我尝试打印animlist[1][1]或animlist[1].frames时,它会打印"nil",但是当我打印animlist.idle.frames时,它会打印实际值1。
文件已经被正确加载,但是似乎无法使用它们的索引。
编辑:我忘记展示了一个试图访问这些表的函数: run动画包含5帧(每个方向,因此是1-r.png 2-r.png等) 此函数的目的是加载动画文件并向player.anims添加一个表,因此它将像这样:player.anims.run.left,它从使用animsettings.lua资源的函数的变量中获取其名称。
function initAnims()
player.anims = {}
getAnimSettings('gfx/players/'..player.modelname..'/animsettings.lua')
for i = 1, #animlist do
for j = 1, #animlist[i][1] do
animlist[i][2] = {
left = ('gfx/players/'..player.modelname..'/'..animlist[i][2]..'/'..animlist[i]..j..'-l.png'),
right = ('gfx/players/'..player.modelname..'/'..animlist[i][2]'/'..animlist[i]..j..'-r.png')
}
table.insert(player.anims, animlist[i][2])
end
end
end
编辑2:我现在意识到,使用这个函数时,每次迭代都会用下一帧替换实际帧,因此我将在该表格内创建另一个表格,其中包含每个帧的数据。但我的问题仍然涉及到表格和索引,我认为在那之后我将能够修正该函数。