返回 导航

Swift

hangge.com

Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)

作者:hangge | 2015-05-20 11:16
(本文代码已升级至Swift3)

游戏少不了背景音乐和音效。下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效。

声音管理类 SoundManager.swift
import SpriteKit
//引入多媒体框架
import AVFoundation

class SoundManager :SKNode{
    //申明一个播放器
    var bgMusicPlayer = AVAudioPlayer()
    //播放点击的动作音效
    let hitAct = SKAction.playSoundFileNamed("hit.mp3", waitForCompletion: false)
    
    //播放背景音乐的音效
    func playBackGround(){
        print("开始播放背景音乐!")
        //获取bg.mp3文件地址
        let bgMusicURL =  Bundle.main.url(forResource: "bg", withExtension: "mp3")!
        //根据背景音乐地址生成播放器
        try! bgMusicPlayer = AVAudioPlayer (contentsOf: bgMusicURL)
        //设置为循环播放(
        bgMusicPlayer.numberOfLoops = -1
        //准备播放音乐
        bgMusicPlayer.prepareToPlay()
        //播放音乐
        bgMusicPlayer.play()
    }
    
    //播放点击音效动作的方法
    func playHit(){
        print("播放音效!")
        self.run(hitAct)
    }
}

主场景 SoundManager.swift
import SpriteKit

class GameScene: SKScene {
    
    lazy var sound = SoundManager()
    
    override func didMove(to view: SKView) {
        //将声音管理实例加入游戏场景中
        self.addChild(sound)
        //播放背景音乐
        sound.playBackGround()
    }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //播放音效
        sound.playHit()
    }

    override func update(_ currentTime: TimeInterval) {
    }
}
评论

全部评论(2)

回到顶部