【问题标题】:Object in the SpaceManager Cocos2d is moving or not?SpaceManager Cocos2d 中的对象是否在移动?
【发布时间】:2011-03-29 06:56:19
【问题描述】:

如何检测空间中的物体当前是否稳定以及他的位置。 哪个参数为我们提供了相关信息或有什么功能?

【问题讨论】:

    标签: iphone cocos2d-iphone chipmunk


    【解决方案1】:

    如果它的位置随着时间的推移是恒定的,那么它就是稳定的。如果不是 - 它就不稳定。

    【讨论】:

    • 是的,我知道,但如何检查该特定对象是恒定的.. :-)
    • 保持它在某个变量中的位置。每个模拟步骤检查 mySprite.position 是否等于该变量(具有一定的准确性)。如果相等 - 那么位置是恒定的。如果您使用一些 physEngine 可能足以检查身体的速度是否为零
    【解决方案2】:

    只需检查身体的速度,并最终检查加速度。如果你想超级准确地检查你的身体是否是静态的:

    if cpveql(body->v,cpvzero)
       theyAreQualDoSomethingFunction();
    

    但是,正如文档警告的那样

    比较浮动时要小心 点数!

    所以你最好检查一下 body->v.xbody->v.y 的绝对值是否小于某个小的精度值。

    如前所述,为了超级精确,您还应该检查加速度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2018-08-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多