今天, 我们学习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. 图画(txt等一下)实施开放的默认下载的默认浏览器,而不是(Java文本)

    在网络上,假设我们超链接地址对应于jpg档,txt档,点击链接,默认浏览器打开这些文件,而不是下载,那么,你如何实现竞争力的默认下载. 1.可通过自己写一个download.jsp来实现 <%@ ...

  2. Unity3D入门(二):碰撞检測

    碰撞器由来 1.系统默认会给每一个对象(GameObject)加入一个碰撞组件(ColliderComponent),一些背景对象则能够取消该组件. 2.在unity3d中,能检測碰撞发生的方式有两种 ...

  3. 用KnockoutJS实现ToDoMVC代码分析

    体验地址 Knockout 版todo web app在线体验 http://todomvc.com/examples/knockoutjs/ 源码地址 项目源码地址,此地址包含了各种JS框架实现的t ...

  4. Sort方法的扩展

    OC中类方法中仅仅为我们提供了一些降序方法,如今我们自定义方法,实现升序. 1.要求:定义一个Person类,实例变量包含name,age,height,定义几个对象,把这些对象保存在数组中,自定义方 ...

  5. 第一章_servlet

    [Servlet与Jsp学习指南] *学习这servlet前.需要下载servlet-api.jar,MyEclipse给自己带来的需求javaEE3.0的天赋足以使用注解获得的版本号servlet ...

  6. Swift正在使用NSURLConnection异步下载同步(实例解析)

    原版的blog.转载请注明出处 http://blog.csdn.net/hello_hwc 一.同步异步两个概念 简单来讲.同步就是函数或者闭包(objective c中的block)运行完成才干返 ...

  7. javascript和css浏览器兼容性总结

    一些浏览器的兼容性做一个总结的问题以下: 为什么会出现这样的现象是?主要表现为Firefox这样的良好支持的浏览器W3C标准,这是现在CSS支持最好的浏览器,和ie它比较早出现,在w3c支持一直没有做 ...

  8. UE4编码规范

    翻译原文为Unreal 的官方!自己看着总结了一下,不一定每条都能对上.不足之处,请多多不吝赐教! 原文地址:  unreal CodingStandard UE4编码规范 在Epic,有简单几条代码 ...

  9. Java Drp项目实战——Drp知多少

    是什么 Drp是Distribution Resource Planning的缩写,意思是分销资源计划.它是用来管理企业的执行于Internet上的分销网络的系统,是以商业流程优化为基础,它的核心是销 ...

  10. 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议

    原文:重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议 [源码下载] 重新想象 Windows 8 Store ...