当玩家与物体碰撞时如何添加声音效果?

How to add a sound effect when player collides with object?

嘿,所以当玩家从顶部击中物体但根本不起作用时,我试图发出声音,我与其他物体有相同的代码并且工作完美,只有这个没有。知道它会是什么吗?

class MonsterNode: GameObjectNode {

var monsterType: MonsterType!
let monsterSound = SKAction.playSoundFileNamed("MONSTER.mp3", waitForCompletion: false)

override func collisionWithPlayer(player: SKNode) -> Bool {



    if player.physicsBody?.velocity.dy < 0 {

        runAction(monsterSound, completion: {
        })

        player.physicsBody?.velocity = CGVector(dx: player.physicsBody!.velocity.dx, dy: 450.0)

       self.removeFromParent()


    } else if player.physicsBody?.velocity.dy > 0 {


        player.physicsBody?.velocity = CGVector(dx: -player.physicsBody!.velocity.dx, dy: -450.0)
        player.hidden = true


    }


    return false
}

你的问题是你试图在 self 中播放声音,然后你立即将 self 从父级中移除。所以试试这个,

    if player.physicsBody?.velocity.dy < 0 {

    runAction(monsterSound, completion: { 
           self.removeFromParent()
    })

    player.physicsBody?.velocity = CGVector(dx: player.physicsBody!.velocity.dx, dy: 450.0)