当前位置: > > > Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)

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

(本文代码已升级至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
  • 2楼
    2017-05-01 22:14
    余欢

    代码报错

    站长回复

    代码已更新,你可以再看下。

  • 1楼
    2017-04-28 13:24
    余欢

    博主这个能详细说明一下吗

    站长回复

    这个就是完整的代码,你新建个项目把代码复制进去就可以看到效果:

    程序启动后自动播放背景音乐,点击屏幕会播放音效。