SKSpriteNode Collision无法正常工作

时间:2019-05-09 13:34:33

标签: swift sprite-kit

我正在创建一个弹球游戏,并检测球和保险杠之间的碰撞。该代码在大多数情况下都有效,但有时球会穿过保险杠。我有一个打印声明,记录着球碰到了保险杠,但没有传递对球的冲动。

以下是发生碰撞时触发的代码:

func handleBallAndTargetCollision( _ theBall:Ball, target:Target, contactPoint:CGPoint) {
    if target.isBumper {
        print("Collided with bumper: \(target.name)")
        let xDiff:CGFloat =  contactPoint.x - target.position.x
        let yDiff:CGFloat =  contactPoint.y - target.position.y
        let theForce:CGVector = CGVector(dx: xDiff * target.impactForce, dy: yDiff * target.impactForce)
        theBall.physicsBody!.applyImpulse(theForce )
    } else {
        handleTarget(target: target)
    }
}

此代码应该以与保险杠相反的方向射击球。

除了对球施加冲动之外,还有其他更好的方法吗?

为什么有时没有施加冲力,球有时会穿过保险杠?

0 个答案:

没有答案