当我插入以下代码(进入LÖVE的引擎)
function createNewBody(id,m)
if world.attributes.isCreated==true then
world.body[id]={mass=m,x=0,y=0,xAccel=0,yAccel=0,xR=0,yR=0} --error is in this line.
world.bodies=world.bodies+1
else
print("You must first create a new world!\n")
end
end
并通过以下方式调用:createNewBody(moon,physics.math.moonG)
(是的,我已经定义了moonG
)。
这是我的physics.math表:
physics={}
physics.math={
gUnit="m/s^2",
earthG=9.80665,
moonG=1.622,
marsG=3.711,
mercG=3.7,
jupitG=24.79,
pi=3.14159265359,
ln=2.718281828459
}
我收到以下错误:'table index is nil' 我不确定我做错了什么。
答案 0 :(得分:0)
您无法以这种方式创建表格。
首先,您必须通过以下方式创建一个空表:
world.body[id] = {}
然后,您可以使用键值对上传它:
world.body[id].mass = m
world.body[id].x = 0
world.body[id].y = 0
...
也许你可以用与原始代码相同的方式编写它们;我不确定这是否有效,但可能确实如此。
奖励:通过创建“模板表”并使用ipairs
搜索,您可以使其变得更加简单,但这超出了此问题的范围。