多次检测到碰撞
Posted
技术标签:
【中文标题】多次检测到碰撞【英文标题】:collision detected more than once 【发布时间】:2015-08-18 02:33:38 【问题描述】:我正在做一个射击游戏,到目前为止我遇到的问题是,当子弹与敌人碰撞并调用函数更新分数时,他们调用该函数大约 10 次,这是我的 didBeginContact:
func didBeginContact(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 == CollisionCategories.Bullet) &&
(secondBody.categoryBitMask == CollisionCategories.Enemy)
println("Hit")
firstBody.node!.removeFromParent()
secondBody.node!.removeFromParent()
//change score
updateScore(1)
【问题讨论】:
【参考方案1】:我遇到的问题是 Enemy 将其物理体配置为大小纹理,通过将其从纹理更改为 circleOfRadius,工作正常。
发件人:
Enemy.physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
收件人:
Enemy.physicsBody = SKPhysicsBody(circleOfRadius: (Enemy.size.width/2))
【讨论】:
以上是关于多次检测到碰撞的主要内容,如果未能解决你的问题,请参考以下文章