Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当这行代码运行时,游戏结束_Ios_Swift_Xcode_Skscene - Fatal编程技术网

Ios 当这行代码运行时,游戏结束

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() } 我希望这样,如果

我试图通过添加以下代码行,在didMove函数中完成我的游戏:

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


    }

}