swift - 如何让 Hero 物理体平静地停在移动平台物理体上?

标签 swift sprite-kit box2d

我的游戏有一个有 4 个座位的摩天轮。每个座位都有一个平台,英雄可以在上面休息。当座位处于上升轨道时,英雄平静地留在平台上。

但是,当座椅处于向下轨迹时,Hero 会向上/向下移动一点。

我已经尝试了一些显而易见的事情: 1.将restitution设置为0没有效果。 2. 将 linearDamping 设置为 1 没有任何效果。 3.使平台和英雄的质量相同没有效果。 4. 调整摩擦力没有效果。

这是平台物理体:

        supportNode?.physicsBody?.categoryBitMask = PhysicsCategory.ferrisPlatform.rawValue
        supportNode?.physicsBody?.mass = 1000
        supportNode?.physicsBody?.restitution = 0.0
        supportNode?.physicsBody?.friction = 0.0
        supportNode?.physicsBody?.linearDamping = 1.0

这是英雄的 body :

    self.physicsBody?.linearDamping = 1.0
    self.physicsBody?.mass = 30
    self.physicsBody?.restitution = 0
    self.physicsBody?.friction = 0

感谢任何提示。英雄在乘坐摩天轮时上行时没有问题,但下行时却出现古怪的上/下 Action ,这绝对是奇怪的。

最佳答案

对我来说这似乎是一个质量问题。平台的质量与它无关,因为我读到它被固定在轮子上。所以你应该增加玩家的质量。 如果你坐摩天轮并让它旋转得足够快,你在下降时也会漂浮。将 restitution 设置为 0 可以很好地避免弹跳,但它无助于将轻物体保持在原位:它只是下落速度不够快。

此外,您可能想要实际增加摩擦力,这样主体就不会滑动。摩擦力为 0,就像坐在冰上一样。

关于swift - 如何让 Hero 物理体平静地停在移动平台物理体上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43618377/

相关文章:

ios - 为什么有时会出现 'The connection was lost' 错误?

ios - 如何使用 ccmoveto 移动 box2d 主体

box2d: GetLinearVelocity() 检测运动?

swift - 当文本字段中有整数时按钮不启用/禁用

linux - 如何在 Linux 或 OS X 上为 Swift 包生成代码覆盖率?

ios - 在 SpriteKit 中使用另一个场景的 boolean 值

swift - 核心运动: Value of optional type 'NSOperationQueue?' not unwrapped

ios - 使用 SpriteKit 画线并检测碰撞

swift - 十六进制到十进制 - Swift