我遇到的问题是旋转一个物体并继续前进到lua中的下一个场景。 我有一个返回delta时间的函数如下:
local runtime = 0
local function getDeltaTime()
local temp = system.getTimer()
local dt = (temp-runtime) / (1000/200)
runtime = temp
return dt
end
然后在我的createScene
内,frameUpdate()
功能如下:
local function frameUpdate()
local dt = getDeltaTime()
wood5.rotation = wood5.rotation -(1*dt)
wood6.rotation = wood6.rotation -(1*dt)
end
Runtime:addEventListener( "enterFrame", frameUpdate )
wood5和wood6分别在上面初始化,轮值为90
和0
。
这里的问题是当我使用“下一个场景”按钮切换场景时。两个树林会旋转正常,但只要我点击“下一个”,“后退”或“重置”按钮,它就会显示错误并说“attempt to perform arithmetic on field 'rotation' (a nil value)
”我尝试打印{{1}的值1}}和wood5.rotation
,它们是第一次wood5.rotation
和90
,但后来变成了巨大的负数。类似的东西:
0
。 .etc
答案 0 :(得分:1)
在改变场景之前,请致电:
Runtime:removeEventListener( "enterFrame", frameUpdate )
并在函数内部检查对象是否存在:
if(wood5~=nil)then
wood5.rotation = wood5.rotation -(1*dt)
end
保持编码....................:)