嘿,我试图在我的游戏中使用动画,但由于某种原因,我得到错误这是我用于动画的代码
local function animate( event )
gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);
如果不使用director类,则可以正常工作导演类是从一个场景到另一个场景
我得到的错误信息,当我试图离开类或当我去其他类它会旋转直到我试图离开
类错误=尝试对字段'rotation' (nil值)执行算术
请帮忙提前感谢!
试试这个:
gear.rotation = 0
local function animate( event )
gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);
最有可能的是,当你改变场景时,你的enterFrame仍在运行,但旧场景正在移除你的齿轮对象(但齿轮变量仍然存在)。请确保在更改场景之前删除enterFrame侦听器。
试试这个:
local gear.rotation = 0
local function animate( event )
gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);
当你离开页面时,呼叫:
Runtime:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")
问题仍然存在,试试下面的代码:
local bg = display.newRect(0,0,display.contentWidth,display.contentHeight) -- or simply create a background
-- create gear
local gear.rotation = 0
local function animate( event )
gear.rotation = gear.rotation + 10
end
bg:addEventListener("enterFrame", animate);
当你离开页面时,呼叫:
bg:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")
保持编码…:)
我已经找到了解决我的问题的方法,我只是改变了本地函数只要发挥作用就行了。
function animate( event )
gate_a.rotation = gate_a.rotation + 2
end
Runtime:addEventListener("enterFrame", animate);
当我离开现场
Runtime:removeEventListener("enterFrame", animate);