-1

嘿,我正在尝试在我的游戏中使用动画,但由于某种原因我收到错误这是我用于动画的代码

local function animate( event )
    gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);

如果我在没有导演类的情况下使用它,这有效导演类是从一个场景到另一个场景

当我尝试离开班级或去其他班级时收到错误消息,但它会旋转直到我尝试离开班级

错误 = 尝试对字段“旋转”(零值)执行算术运算

任何帮助请提前致谢!

4

4 回答 4

1

尝试这个:

gear.rotation = 0

local function animate( event )
    gear.rotation = gear.rotation + 10
end

Runtime:addEventListener("enterFrame", animate);
于 2013-05-09T21:04:50.347 回答
1

最有可能的是,当您更改场景时,您的 enterFrame 仍在运行,但旧场景正在删除您的齿轮对象(但齿轮变量仍然存在)。确保在更改场景之前删除该 enterFrame 侦听器。

于 2013-05-10T00:51:56.317 回答
0

尝试这个:

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")

继续编码..... :)

于 2013-05-10T04:02:37.247 回答
0

我找到了解决我的问题的方法,我只是将本地功能更改为正常功能并且它可以工作。

 function animate( event )
     gate_a.rotation = gate_a.rotation + 2
 end
 Runtime:addEventListener("enterFrame", animate);

当我离开现场

 Runtime:removeEventListener("enterFrame", animate);
于 2013-05-10T13:27:54.770 回答