今天, 我们学习cocos2dX里面音乐和音效, 为什么学他呢, 难道你喜欢看无声电影( 旁白: 我就喜欢关着声音玩), 我们不要管旁白了, 她是个疯子

老规矩, 资源准备好:

一首<故宫神思>作为背景音乐, 话说我最喜欢这样的调调了, 一个hit.mp3作为背景音效, 话说我百度了好久都没找到其它格式的音效, 将就使用mp3的了, 嘿嘿

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzY0MjQ5NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

嗯, 对了, 先来看看音乐和音效的差别吧:

音乐通常是歌曲, 用来作为背景声音的, 音效一般比較短促, 用来作为打斗效果时或者按下的时候的短促声音

我们来看看经常使用的函数有哪些:

音乐MUSIC:

preloadBackgroundMusic( 音乐文件);                
//载入音乐

playBackgroundMusic( 音乐文件, bool);     //播放音乐, true代表循环播放, false代表不循环

pauseBackgroundMusic()                                  
//暂停

resumeBackgroundMusic()                              
//继续

stopBackgroundMusic()                                      
//停止

rewindBackgroundMusic()                                
//从头播放

isBackgroundMusicPlaying()                            
//是否正在播放

setBackgroundMusicVolume()                           
//设置音量

getBackgroundMusicVolume()                          
//获取音量

音效EFFECT:

额, 这个和音乐的差点儿相同, 我能不把列出来吗?

还是列出来吧, 我就不凝视了, 应该没问题

preloadEffect( 音效文件)

unloadEffect( 音效文件)

playEffect( 音效文件, 是否反复)

stopEffect( 音效ID)

stopAllEffects()

pauseEffect( 音效ID)

pauseAllEffects()

resumeEffect( 音效ID)

resumeAllEffects()

getEffectsVolume()

setEffectsVolume()

嗯, 貌似就差点儿相同了, 我们開始写代码吧:

头文件, 我们写几个回调函数用来控制音乐:

void playMusicCallback(CCObject* pSender);		//播放背景音乐
void pauseMusicCallback(CCObject* pSender); //暂停背景音乐
void recoverMusicCallback(CCObject* pSender); //恢复背景音乐
void stopMusicCallback(CCObject* pSender); //停止背景音乐

cpp文件:

我们创建四个菜单button, 用来控制声音:

//创建四个菜单button
CCMenuItemFont* playBG = CCMenuItemFont::create( "play", this, menu_selector( HelloWorld::playMusicCallback));
CCMenuItemFont* pauseBG = CCMenuItemFont::create( "pause", this, menu_selector( HelloWorld::pauseMusicCallback));
CCMenuItemFont* recoverBG = CCMenuItemFont::create( "recover", this, menu_selector( HelloWorld::recoverMusicCallback));
CCMenuItemFont* stopBG = CCMenuItemFont::create( "stop", this, menu_selector( HelloWorld::stopMusicCallback)); CCMenu* pMenu2 = CCMenu::create( playBG, pauseBG, recoverBG, stopBG, NULL);
pMenu2->setPosition( ccp( visibleSize.width / 2, visibleSize.height / 2));
pMenu2->alignItemsVertically();
addChild( pMenu2);

载入音乐文件, 而且设置默认音量:

	SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic( "palaceMemories.mp3");		//载入背景音乐
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume( 1.0); //设置默认背景音量

我们来实现四个回调函数:

分别播放背景音乐, 暂停背景音乐, 恢复背景音乐, 停止背景音乐, 嗯, 每一个回调函数里面另一个播放音效的, 点击一次菜单, 就会播放一次

void HelloWorld::playMusicCallback(CCObject* pSender)
{
SimpleAudioEngine::sharedEngine()->playBackgroundMusic( "palaceMemories.mp3");
{
//播放音效
SimpleAudioEngine::sharedEngine()->playEffect( "hit.mp3");
}
} void HelloWorld::pauseMusicCallback(CCObject* pSender)
{
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
{
//播放音效
SimpleAudioEngine::sharedEngine()->playEffect( "hit.mp3");
}
}
void HelloWorld::recoverMusicCallback(CCObject* pSender)
{
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
{
//播放音效
SimpleAudioEngine::sharedEngine()->playEffect( "hit.mp3");
}
}
void HelloWorld::stopMusicCallback(CCObject* pSender)
{
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
{
//播放音效
SimpleAudioEngine::sharedEngine()->playEffect( "hit.mp3");
}
}

我们来看看效果:

事实上也看不见什么效果, 额 仅仅有看看右下角的音量标志证明她在播放了, 今天的代码非常easy, 希望大家写一下, 看看效果, 有不明确的地方能够进群讨论:223856254

版权声明:本文博客原创文章,博客,未经同意,不得转载。

cocos2dX 音乐和声音效果的更多相关文章

  1. cocos2d-x 音乐/音效设置

    cocos2d-x 游戏中声音 有两种 一种是背景音乐一种是音效 载入音乐 或者音效的时候 我们须要先缓存声音 #include "SimpleAudioEngine.h" usi ...

  2. 基于jplayer实现歌词同步的JS音乐播放器效果

    分享一款基于jplayer实现歌词同步的JS音乐播放器效果.这是一款基于jQuery实现的音乐播放器功能代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <textare ...

  3. Cocos2d-x可以实现的效果总结

    Cocos2d-x可以实现的效果总结  动作(Actions) move移动:moveto/moveby 从一个位置移动到另外一个位置 从一个位置移动多少数量级 rotate旋转:rotateto/r ...

  4. iOS-自定义Model转场动画-仿酷我音乐播放器效果

    周末,闲来无事,仿写了酷我音乐播放器效果: 效果图如下: 实现思路: 1.实现手势处理视图旋转 2.自定义Model动画: 1.手势是利用了一个UIPanGestureRecognizer手势: 注意 ...

  5. Cocos2d-X中的声音和音效

    在玩游戏时都会有各种游戏音,如启动游戏时会有背景音,胜利或者失败会有一些音效.在Cocos2d-X中能够使用CocosDenshion实现各种声音 在使用CocosDenshion之前须要在程序中加入 ...

  6. 【分享】4412开发板ubuntu 12.0.4播放音乐没有声音解决方法

    转自迅为论坛:http://bbs.topeetboard.com 准备工作 1.下载 vim 在命令行上输入 apt-get install vim 下载 vim 2.输入 vim /etc/hos ...

  7. Cocos2d-X 精灵、动作效果

    命名空间宏: USING_NS_CC; 感觉事实上挺鸡肋的. NS_CC_BEGIN. == using namespace cocos2d{ NS_CC_END ; } 推断一个精灵被点击: 1.层 ...

  8. iOS开发之虾米音乐频道选择切换效果分析与实现

    今天博客的内容比较简单,就是看一下虾米音乐首页中频道选择的一个动画效果的实现.之前用mask写过另外一种Tab切换的一种效果,网易云音乐里边的一种Tab切换效果,详情请移步于"视错觉:从一个 ...

  9. android 摇一摇+震动+声音效果

    文章链接:https://mp.weixin.qq.com/s/n6EXvfmpNPtWM1kEnGgwUA 摇一摇红包效果已经是老生常谈的了,利用手机的传感器识别摇一摇,同时过程中进行动画+震动+声 ...

随机推荐

  1. UVA 11324 - The Largest Clique(强连通分量+缩点)

    UVA 11324 - The Largest Clique 题目链接 题意:给定一个有向图,要求找一个集合,使得集合内随意两点(u, v)要么u能到v,要么v能到u,问最大能选几个点 思路:强连通分 ...

  2. a标签中调用js的几种方法

    1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议 ...

  3. 在配置文件(.settings、.config)中存储自定义对象

    原文:在配置文件(.settings..config)中存储自定义对象 引言 我前面曾写过一篇<使用配置文件(.settings..config)存储应用程序配置>,我在其中指出“sett ...

  4. centos下ant的安装

    1.创建一个文件夹,用于安装ant.我们这里临时在/usr文件夹下创建ant文件夹. 2.下载 cd /usr/ant进入该文件夹,使用wget  ant的下载地址  下载ant到当前文件夹下.附an ...

  5. hdu5338 (二进制,双指针)

    这种双循环的优化问题碰到过很多了.层出不穷. 但无非就是要利用前面循环时,所产生的信息,从而减少计算. 可以注意到log其实是不超过40的, 那么以这方面入手,时间复杂度就可以降为nlogn log= ...

  6. Android 下拉刷新上拉载入效果功能

    应用场景: 在App开发中,对于信息的获取与演示.不可能所有将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态载入数据的要求就会出现. 为此.该效果功能就须要应用 ...

  7. Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition 转载请注明:http://blog.csdn.net/stdcou ...

  8. 普通的年轻状态机,纯C语言

    我们第一次接触到了状态机.在数字电路课程.计数器.串行奇偶校验.考了1连续报错电路 等待,两者都需要一个状态机模型.电路实现这些功能,与状态机的状态转移图.状态转移表是等价. 后.然后,我们联系了状态 ...

  9. Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程

    原文:Red Gate系列之三 SQL Server 开发利器 SQL Prompt 5.3.4.1 Edition T-SQL智能感知分析器 完全破解+使用教程 Red Gate系列之三 SQL S ...

  10. hdu 4557 非诚勿扰 vector的应用 原来vector 可以删除指定位置元素 不过消耗大

    非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submi ...