zoukankan      html  css  js  c++  java
  • 关于Cocos2d-x中背景音乐和音效的添加

    1.首先引入头文件和命名空间

    #include "SimpleAudioEngine.h"

    using namespace CocosDenshion;

    2.在GameScene.cpp的init方法中加载背景音乐和音效到一个SimpleAudioEngine::getInstance();的对象中

    //加载音乐,播放背景音乐
    auto audioengine = SimpleAudioEngine::getInstance();
    audioengine->preloadBackgroundMusic("sound/bgmusic.mp3");
    audioengine->preloadEffect("sound/shoot.wav");
    audioengine->preloadEffect("sound/hero_down.mp3");
    audioengine->preloadEffect("sound/enemy3_down.wav");
    audioengine->preloadEffect("sound/enemy1_down.wav");
    audioengine->preloadEffect("sound/enemy2_down.wav");
    audioengine->preloadEffect("sound/big_spaceship_flying.mp3");

    3.播放背景音乐(GameScene.cpp的init方法中)

    audioengine->playBackgroundMusic("sound/bgmusic.mp3", true);

    4.播放特定音效(满足某个条件的时候,比如飞机爆炸就在满足飞机爆炸的条件下写播放爆炸的音效的语句)

    SimpleAudioEngine::getInstance()->playEffect("sound/enemy1_down.wav");

    用到的函数

    1.virtual void preloadBackgroundMusic(const char * filePath)

    预加载背景音乐。

    参数
    filePath 背景音乐的文件路径。

    2.virtual void playBackgroundMusic ( const char * filePath,bool loop = false )

    播放背景音乐。

    参数
    filePath 背景音乐的文件路径或T_SoundResInfo中的FileName字段。
    loop 背景音乐是否循环播放。

    3.virtual void stopBackgroundMusic ( bool releaseData = false )

    停止播放背景音乐。

    参数
    releaseData 是否释放背景音乐的数据,默认值为false。

    4.virtual void pauseBackgroundMusic ( )

    暂停播放背景音乐。

    5.virtual void resumeBackgroundMusic ( )

    恢复播放背景音乐。

    6.virtual void rewindBackgroundMusic ( )

    将背景音乐倒回起始点播放。

    7.virtual void preloadEffect(const char * filePath)

    预加载音效文件。

    参数
    filePath 音效文件路径。

    8.virtual unsigned int playEffect ( const char * filePath,bool loop = false,float pitch = 1.0f,float pan = 0.0f,float gain = 1.0f )

    播放音效

    参数
    filePath 音效文件的路径。
    loop 是否循环播放,默认为false,不循环。
    pitch 频率,正常情况下为1.0,在播放时也可以改变该值。
    pan 声道,范围为-1到1,为-1时表示只有左声道,为1时表示只有右声道。
    gain 音量增益, 范围为0到1,默认值为1。
    返回
    声音id。
    注解
    现在还不能完全支持所有参数,限制的功能如下:
    在Samsung Galaxy S2上如果启用了OpenSL那么pitch参数无效;
    在emscrippten, win32, marmalade上pitch/pan/gain参数无效

    9.virtual void stopEffect ( unsigned int soundId )

    停止播放指定的音效。

    参数
    soundId playEffect返回的资源id。

    10.virtual void pauseEffect ( unsigned int soundId )

    暂停播放指定音效。

    参数
    soundId 音效id。

    11.virtual void resumeEffect ( unsigned int soundId )

    恢复暂停播放指定的音效。

    参数
    soundId playEffect返回的资源id。

    12.virtual void unloadEffect ( const char * filePath )

    卸载预加载到内存中的音效文件。

    参数
    filePath 音效文件的路径。












  • 相关阅读:
    HTML直接引用vue.min.js,bootstrap-vue.min.js,axios.min.js等开发一个页面(2)
    HTML直接引用vue.min.js,bootstrap-vue.min.js,axios.min.js等开发一个页面
    [Vue+Element UI]不知道总页码数时如何实现翻页
    [Vue] 报错: Uncaught (in promise)
    [Vue + Element UI] 单选框
    [Lombok] Lombok的使用和常用注解使用示例
    Eclipse的Web项目开发:Maven插件jetty服务器的关闭
    [Python] 电脑同时安装python2和python3, 如何实现切换使用
    [Yaml] YAML 入门教程
    k8s ha的安装
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5812543.html
Copyright © 2011-2022 走看看