在Lua中旋转物理对象。

我遇到的问题是在 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 在上面被初始化为旋转值 900

问题在于,当我使用我的“下一个场景”按钮切换场景时,这两个物体会正常旋转,但是当我按下“下一个”,“返回”或“重置”按钮时,它会显示一个错误并说:“尝试在字段 'rotation' 上执行算术运算(一个空值)”。我尝试打印 wood5.rotationwood5.rotation 的值,第一次它们是 900,但后来它们变成了负数。类似于:

-3430.9887695313
-3520.9877929688

。……

点赞
用户1979583
用户1979583

在场景变换之前,调用:

Runtime:removeEventListener("enterFrame", frameUpdate)

在你的函数里面,检查对象是否存在:

if (wood5 ~= nil) then
    wood5.rotation = wood5.rotation - (1 * dt)
end

继续编写代码.................... :)

2013-12-16 04:18:16