Ios 当这行代码运行时,游戏结束
我试图通过添加以下代码行,在didMove函数中完成我的游戏:Ios 当这行代码运行时,游戏结束,ios,swift,xcode,skscene,Ios,Swift,Xcode,Skscene,我试图通过添加以下代码行,在didMove函数中完成我的游戏: if ((player.physicsBody?.velocity.dx)! < CGFloat(10.0)) { gameOver() } else if ((player.physicsBody?.velocity.dy)! < CGFloat(10.0)) { gameOver() } 我希望这样,如果
if ((player.physicsBody?.velocity.dx)! < CGFloat(10.0)) {
gameOver()
} else if ((player.physicsBody?.velocity.dy)! < CGFloat(10.0)) {
gameOver()
}
我希望这样,如果玩家的速度降到10以下,那么游戏应该结束并移动到下一个viewController
此外,即使运行了gameOver功能,游戏场景仍会继续检测碰撞并报告碰撞,如何停止碰撞
这是带位掩码的DIDBGIN函数:
let PlayerHitCategory: UInt32 = 5;
let ObjectHitCategory: UInt32 = 4;
let WallHitCategory: UInt32 = 3;
player.physicsBody?.categoryBitMask = PlayerHitCategory
player.physicsBody?.collisionBitMask = ObjectHitCategory | WallHitCategory
player.physicsBody?.contactTestBitMask = ObjectHitCategory
object.physicsBody?.contactTestBitMask = ObjectHitCategory | PlayerHitCategory
object.physicsBody?.categoryBitMask = ObjectHitCategory
object.physicsBody?.collisionBitMask = ObjectHitCategory | PlayerHitCategory
physicsBody.categoryBitMask = WallHitCategory
physicsBody.collisionBitMask = 0
physicsBody.contactTestBitMask = PlayerHitCategory
func didBegin(_ contact: SKPhysicsContact) {
// print("didBeginContact entered for \(String(describing: contact.bodyA.node!.name)) and \(String(describing: contact.bodyB.node!.name))")
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch contactMask {
case PlayerHitCategory | ObjectHitCategory:
hitSound()
playerDisplacement()
print("Collided with object")
case PlayerHitCategory | WallHitCategory:
bounceSound()
print("Collided with wall")
default: break
}
}
您的
update
方法中是否有一些代码?已修复。问题出在钻头面罩上。
let PlayerHitCategory: UInt32 = 5;
let ObjectHitCategory: UInt32 = 4;
let WallHitCategory: UInt32 = 3;
player.physicsBody?.categoryBitMask = PlayerHitCategory
player.physicsBody?.collisionBitMask = ObjectHitCategory | WallHitCategory
player.physicsBody?.contactTestBitMask = ObjectHitCategory
object.physicsBody?.contactTestBitMask = ObjectHitCategory | PlayerHitCategory
object.physicsBody?.categoryBitMask = ObjectHitCategory
object.physicsBody?.collisionBitMask = ObjectHitCategory | PlayerHitCategory
physicsBody.categoryBitMask = WallHitCategory
physicsBody.collisionBitMask = 0
physicsBody.contactTestBitMask = PlayerHitCategory
func didBegin(_ contact: SKPhysicsContact) {
// print("didBeginContact entered for \(String(describing: contact.bodyA.node!.name)) and \(String(describing: contact.bodyB.node!.name))")
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch contactMask {
case PlayerHitCategory | ObjectHitCategory:
hitSound()
playerDisplacement()
print("Collided with object")
case PlayerHitCategory | WallHitCategory:
bounceSound()
print("Collided with wall")
default: break
}
}