【问题标题】:Check for absence of contact检查是否没有联系
【发布时间】:2015-02-24 18:13:04
【问题描述】:

我正在使用 Sprite Kit(及其物理引擎)开发一款益智平台游戏。我的玩家的物理体由一个覆盖大部分精灵的大碰撞箱和一个固定在碰撞箱底部的带有销接头的轮子组成。向轮子添加了旋转,以使玩家在屏幕上移动。

我需要知道玩家是在地上,还是从壁架上掉下来;我知道如何检查物理身体接触,但是否可以检查是否没有接触(即当车轮离开地面时)?我不能依赖比较最后一帧的 Y 位置,因为玩家攀爬的表面是倾斜的。

【问题讨论】:

    标签: sprite-kit skphysicsbody


    【解决方案1】:

    您可以使用didEndContact:(SKPhysicsContact *)contact 检查车轮是否不再接触地面。与 didBeginContact:(SKPhysicsContact *)contact 相同的主体,只是相反。

    【讨论】:

    • 啊,完美。非常感谢!
    • 只是说明我最终不得不使用不同的方法 - 我的游戏世界是基于瓷砖的,并且didEndContact 会在玩家离开瓷砖时触发(无论他们是否移动到另一个“地面”瓷砖)。我现在使用physicsWorld.bodyAlongRayStart() 检查玩家左右角下方的物理预兆,以检测玩家是否站在地面上。
    猜你喜欢
    • 2015-02-04
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2013-07-19
    • 2021-08-13
    • 2011-03-16
    相关资源
    最近更新 更多