我正在创建一个让玩家使用通电的游戏。每当玩家选择激活电源时,此功能就会运行。它使用道具将玩家的图像更改为玩家的图像,并更改碰撞物理,以便玩家现在对敌人免疫。
只要变量 powerActivated 为 1,它就会执行此操作,但是正如您所见,它直接回到 0。我需要它延迟 5-10 秒,然后转到 0。这将允许用户使用 powerUp 几个在它消失之前的几秒钟。
func superAbility(){
powerActivated = 1
if powerActivated == 1 {
player.texture = SKTexture(imageNamed: "heroWithPower")
player.physicsBody!.categoryBitMask = PhysicsCategories.PowerUp
player.physicsBody!.collisionBitMask = PhysicsCategories.None
player.physicsBody!.contactTestBitMask = PhysicsCategories.Enemy
// delay should be here
powerActivated = 0
}
else {
player.texture = SKTexture(imageNamed: "hero")
player.physicsBody!.categoryBitMask = PhysicsCategories.Player
player.physicsBody!.collisionBitMask = PhysicsCategories.None
player.physicsBody!.contactTestBitMask = PhysicsCategories.Enemy
}