【发布时间】:2017-03-28 09:21:30
【问题描述】:
我有一个对象与另外两个对象发生碰撞。我根据有问题的碰撞对象更改恢复原状。每当恢复从 0.5 变为 0 时,它不会立即被识别,这会在恢复原假设为零时导致短暂的弹跳。如何使更改立即可识别/生效?请参阅下面的代码:
func didBegin(_ contact: SKPhysicsContact) {
var firstBody : SKPhysicsBody
var secondBody : SKPhysicsBody
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
firstBody = contact.bodyA
secondBody = contact.bodyB
}
else {
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if firstBody.categoryBitMask == spriteCategory && secondBody.categoryBitMask == enemyCategory1 {
var spriteContactNode = firstBody.node
spriteContactNode?.physicsBody?.restitution = 0.5
self.physicsWorld.gravity = CGVector(dx: 0, dy: -2.0)
}
if firstBody.categoryBitMask == spriteCategory && secondBody.categoryBitMask == enemyCategory2 {
var spriteContactNode = firstBody.node
spriteContactNode?.physicsBody?.restitution = 0
self.physicsWorld.gravity = CGVector(dx: 0, dy: -0.5)
}
}
【问题讨论】:
标签: swift3 sprite-kit