2014-12-23 3 views
0

У меня есть простая игра, в которой мяч прыгает через препятствия. Когда он приходит в контакт с препятствием (либо при прыжке, либо когда он сталкивается перед прыжком), я хочу воспроизвести звук перед тем, как перейти к экрану главного меню (GameScene.Swift). Там определенно будет обнаружение didBeginContact, но не обязательно didEndContact По какой-то причине звуковой файл не воспроизводится. Что я делаю не так?Звук, не играющий на контакте

PlayScene.Swift файл

class PlayScene: SKScene, SKPhysicsContactDelegate{ 
    //...... 
    let losingSoundAction = SKAction.playSoundFileNamed("losing.wav", waitForCompletion: true) 
    //.... 

    func didBeginContact(contact: SKPhysicsContact) { 
     //play the losing sound 
     self.runAction(losingSoundAction) 

     contact.bodyA.categoryBitMask = ColliderType.Hero.rawValue 
     died() 
    } 

    func died(){ 
     //change back to main screen 
     if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { 
     let skView = self.view as SKView! 
     scene.scaleMode = .AspectFill 
     scene.GameSceneInstance = self 
     scene.score = score 
     skView.presentScene(scene) 
     } 
    } 
} 
+1

. СделалBeginContact выполнить? Если нет, задали ли вы класс как делегат физики? – LearnCocos2D

+0

yes doneBeginCOntact выполняется потому, что сцена меняется на главную GameScene – newbiedev

ответ

0

я переместил умер вызов() для didEndContact(), и что, казалось, решить эту проблему.

Смежные вопросы