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

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

声音管理类 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

importSpriteKit

//引入多媒体框架

importAVFoundation

classSoundManager:SKNode{

//申明一个播放器

varbgMusicPlayer =AVAudioPlayer()

//播放点击的动作音效

lethitAct =SKAction.playSoundFileNamed("hit.mp3", waitForCompletion:false)

//播放背景音乐的音效

funcplayBackGround(){

//获取apple.mp3文件地址

varbgMusicURL:NSURL=NSBundle.mainBundle().URLForResource("bg", withExtension:"mp3")!

//根据背景音乐地址生成播放器

bgMusicPlayer=AVAudioPlayer(contentsOfURL: bgMusicURL, error:nil)

//设置为循环播放

bgMusicPlayer.numberOfLoops = -1

//准备播放音乐

bgMusicPlayer.prepareToPlay()

//播放音乐

bgMusicPlayer.play()

}

//播放点击音效动作的方法

funcplayHit(){

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

importSpriteKit

classGameScene:SKScene{

lazyvarsound =SoundManager()

overridefuncdidMoveToView(view:SKView) {

//将声音管理实例加入游戏场景中

self.addChild(sound)

//播放背景音乐

sound.playBackGround()

}

overridefunctouchesBegan(touches:NSSet, withEvent event:UIEvent) {

//播放音效

sound.playHit()

}

overridefuncupdate(currentTime:CFTimeInterval) {

}

}