我目前正在使用Corona SDK创建的游戏模板来开发我的游戏,我想要做的事情非常简单,我希望箱子留在它产生的地方,并且只有在敲击箱子后移动。为了达到这个目的,我尝试删除了箱子的gravityScale
。这就是我所做的:
local function crateTap( event )
print( "gravityScale : " .. event.target.gravityScale)
event.target.gravityScale = 1
print( "gravityScale : " .. event.target.gravityScale)
end
local crate = display.newImageRect( "crate.png", 45, 45 )
crate.x, crate.y = 160, 20
crate.rotation = 15
-- add physics to the crate
physics.addBody( crate, { density=1.0, friction=0.3, bounce=0.3 } )
crate.gravityScale = 0
crate:addEventListener( "tap", crateTap )
应用程序加载正常,如果我在板条箱上快速点击,就像屏幕上的第一秒一样,箱子会掉下来,但是如果我稍等一下点击,什么都不会发生。我不明白为什么。
这是完整的level1.lua文件http://pastebin.com/yjxmGqw5
由于
答案 0 :(得分:0)
然后问题出在代码的其他地方。如图所示,代码没有任何问题。重力比例可以随时更改,并在事件处理程序返回后立即生效。它早期工作的事实表明了这一点。它然后停止工作表示在第二次播放后某处发生了其他事情,例如物理引擎可能被另一个事件暂停,或者在enterFrame事件处理程序中暂停。