【问题标题】:Corona body removing itself from the physic world电晕体将自己从物理世界中移除
【发布时间】:2014-03-09 20:31:32
【问题描述】:

我目前使用 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

谢谢

【问题讨论】:

  • 两个打印语句的输出是什么?我看不出你发布的代码有什么问题。
  • gravityScale:0,gravityScale:1。

标签: lua box2d coronasdk


【解决方案1】:

那么问题出在代码的其他地方。如图所示,代码没有任何问题。重力比例可以随时更改,并在事件处理程序返回后立即生效。它早期工作的事实表明了这一点。然后它停止工作表明在播放一秒钟后某处发生了其他事情,例如物理引擎可能被另一个事件暂停,或者 enterFrame 事件处理程序中的某些事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-26
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多