游戏少不了背景音乐和音效。下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效。
声音管理类 SoundManager.swift
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import SpriteKit
//引入多媒体框架import AVFoundation
class SoundManager :SKNode{
//申明一个播放器
var bgMusicPlayer = AVAudioPlayer()
//播放点击的动作音效
let hitAct = SKAction.playSoundFileNamed("hit.mp3", waitForCompletion: false)
//播放背景音乐的音效
func playBackGround(){
//获取apple.mp3文件地址
var bgMusicURL:NSURL = NSBundle.mainBundle().URLForResource("bg", withExtension: "mp3")!
//根据背景音乐地址生成播放器
bgMusicPlayer=AVAudioPlayer(contentsOfURL: bgMusicURL, error: nil)
//设置为循环播放
bgMusicPlayer.numberOfLoops = -1
//准备播放音乐
bgMusicPlayer.prepareToPlay()
//播放音乐
bgMusicPlayer.play()
}
//播放点击音效动作的方法
func playHit(){
self.runAction(hitAct)
}
} |
主场景 SoundManager.swift
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import SpriteKit
class GameScene: SKScene {
lazy var sound = SoundManager()
override func didMoveToView(view: SKView) {
//将声音管理实例加入游戏场景中
self.addChild(sound)
//播放背景音乐
sound.playBackGround()
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
//播放音效
sound.playHit()
}
override func update(currentTime: CFTimeInterval) {
}
} |