瘸腿蛤蟆笔记24-cocos2d-x-3.2 游戏中音乐播放使用

转载标明出处:http://write.blog.csdn.net/postedit/38521613

上篇回顾

本篇名言:复杂中带着简单的思考,是人和动物的分别。[皮雅]

上篇中,蛤蟆学习如何实现血条掉血的特效。这次我们将跳跃到完全的不同世界,从图形化世界过渡到音乐世界。我们在游戏中的音乐简单可以分为两类,一种是背景游戏音乐,另一个种是效果音乐。

 

理论介绍

         本次的理论知识,音乐我们主要用到的类是SimpleAutioEngine。这个类和我们之前学习的动画之类的不是同宗的。可以说也没亲戚关系的,完全是另一氏族了。

         我们先介绍几个函数:

preloadBackgroundMusic,playBackgroundMusic,setBackgroundMusicVolume

         函数原型如下:

virtual voidpreloadBackgroundMusic(const char * pszFilePath)

         这个preloadBackgroundMusic函数是实现预加载背景音乐

virtual void playBackgroundMusic

(

const char * 

pszFilePath,

bool 

bLoop = false 

)

         这个playBackgroundMusic函数是用来播放背景音乐的。

 

        virtual void setBackgroundMusicVolume

(

float 

volume

)

         这个setBackgroundMusicVolume函数用来设置背景音乐音量大小,范围必须为0.0到1.0之间。

 

具体步骤

         首先我们需要在HelloWorld.cpp的开始处加入

using namespaceCocosDenshion;

使用命名空间。

然后将一个mp3文件放入到resources文件中,命名为shenhua.mp3。

接着在HelloWorld.cpp文件中找到

bool HelloWorld::init()函数,加入如下代码。

 

         SimpleAudioEngine::getInstance()->preloadBackgroundMusic("shenhua.mp3" );

         SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0);

         SimpleAudioEngine::getInstance()->playBackgroundMusic("shenhua.mp3",true);

  编译运行后,就会播放背景音乐了。

 

代码解释

         下面我们来解释下代码的含义:

bool HelloWorld::init()函数中代码解释。

         SimpleAudioEngine::getInstance()->preloadBackgroundMusic("shenhua.mp3" );//加载音乐shenhua.mp3到内存中

         SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.5);//设置背景播放音乐音量

         SimpleAudioEngine::getInstance()->playBackgroundMusic("shenhua.mp3",true);//启动播放背景音乐,第一个参数表示音乐名字,第二个参数表示播放完毕是否循环。

        

         OK,完毕。

         是不是很简单,不过蛤蟆发现当前版本下setBackgroundMusicVolume 函数好像不会生效。蛤蟆进入了源码自带的voidSimpleAudioEngine::setBackgroundMusicVolume(floatvolume)函数发现这个函数式空的。额,难怪。我们暂时就不去管它了哈。

总结

         本次蛤蟆开始学习音乐相关的知识。音乐虽然不是游戏中的核心,但是和游戏效果、游戏体验密切相关。一般游戏中会有专门的音乐师来负责音乐相关工作。

你可能感兴趣的:(瘸腿蛤蟆笔记24-cocos2d-x-3.2 游戏中音乐播放使用)