gpt4 book ai didi

animation - Love2D/Lua 动画系统和表格

转载 作者:行者123 更新时间:2023-12-02 22:41:20 28 4
gpt4 key购买 nike

你好!目前我正在为我的游戏开发一个“简单”的动画系统。我的 table 有一些问题。我制作了一个设置文件,用于加载动画的信息(具体来说,它加载动画的别名及其包含的帧数),所以,我的设置文件如下所示:(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。

所以它正确加载文件,但我似乎无法使用它们的索引。

编辑:我忘了显示尝试访问这些表的函数:运行动画包含 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

Edit2:现在我意识到,通过这个函数,每次迭代我都会用下一帧替换实际帧,所以我将在该表内创建另一个表来包含每个帧的数据,但我的问题仍然是关于表的,和索引,我想我将能够在 D:

之后更正该功能

最佳答案

animlist = {idle, run}

这一行初始化animlist,使其成为一个数组,一个包含键1和2的表,它们对应的值为表idle运行

现在,当你写

animlist.idle = { frames, alias }

您尝试访问 animlist 的名称(字符串)“idle” 对应的成员,该成员不是键 1 处的成员。

您要做的就是初始化键 1 和 2 处的两个子表,而不是使用名称。首先,删除以下行:

animlist.idle = { frames, alias }

这是多余的,因为您已经在索引 1 处获得了一个表。然后将其余部分更改为

animlist[1].frames = 1
animlist[1].alias = "idle"

等等,对第二个内部表也执行此操作。

关于animation - Love2D/Lua 动画系统和表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19640112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com