zoukankan      html  css  js  c++  java
  • cocos2d-x ios游戏开发初认识(九) 音效、粒子系统与存储

    我们知道。一个游戏少不了声音。一些好听的声音会提起你对游戏的兴趣,当然做好听的声音不是我们要学的,我们的目的是把声音在适当的时候放出来。顺便在这节中会说下简单的粒子系统和文件存储。

    一、声音的播放:

    1、新建一个cocos2dproject加入对应的声音图片资源:


    播放声音所用到的内容:


    代码:

    这里能够先在RootViewController.mm里面设置屏幕 禁止旋转

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

     //设置方向

        returnUIInterfaceOrientationIsPortrait(interfaceOrientation);

    }

    - (BOOL) shouldAutorotate {

       return NO//不同意

    }

    HelloWorld 其余代码全都删掉 仅仅留下初始化部分

    bool HelloWorld::init()

    {

        //////////////////////////////

        // 1. super init first

       if ( !CCLayer::init() )

        {

            return false;

        }

        return true;

    }


    加入背景:

        //加入背景图片

       CCSize winsize = CCDirector::sharedDirector()->getWinSize();

       CCSprite *bg = CCSprite::create("BG.png");

        bg->setPosition(CCPoint(winsize.width/2,winsize.height/2));//3.0以后的做法调用构造函数

       this->addChild(bg);

    执行:


    加入button:

        CCMenuItemSprite *item =CCMenuItemSprite::create(CCSprite::create("menu0.png"),CCSprite::create("menu1.png"),this,menu_selector(HelloWorld::onMenuItem));//正常和点击时候的图片

       item->setPosition(CCPoint(winsize.width/2,100));

       CCMenu *menu = CCMenu::create(item,NULL);

        menu->setPosition(CCPointZero);

       this->addChild(menu);

    执行:


    以下加入声音和音效:

        //播放音乐

        SimpleAudioEngine::sharedEngine()->playBackgroundMusic("bg.mp3",true); //为true表示一直播放

       

        //预载入音效

        SimpleAudioEngine::sharedEngine()->preloadEffect("select.mp3");

    事件的点击函数:

    voidHelloWorld::onMenuItem(CCObject *obj)

    {

        //播放音效

        SimpleAudioEngine::sharedEngine()->playEffect("select.mp3");    

    }

    执行:

    有声音发出,点击button会有音效发出。。。

    。这就简单的实现声音的播放。

    二、介绍简单的粒子系统


    cocos2d已经有自己的粒子系统当然也能够用自己的,以下通过代码实现一个内部的粒子系统:

    voidHelloWorld::onMenuItem(CCObject *obj)

    {

        //播放音效

        SimpleAudioEngine::sharedEngine()->playEffect("select.mp3");

        //创建粒子系统

       CCSize winsize = CCDirector::sharedDirector()->getWinSize();

        CCParticleExplosion *ex =CCParticleExplosion::create();

        ex->setPosition(CCPoint(winsize.width/2, winsize.height/2));

       this->addChild(ex);

    }

    执行 点击button:


    因为动画太快,截图效果不好。大家能够自己演示。。

    以下用自己的粒子系统 网络有非常多做粒子系统的软件在这里我用的是ParticleDesigner打开:


    随便打开一个


    然后点击保存button

    第三个


    √一定要选保存的文件类型为plist文件,将保存的plist文件加入到project中去。。

    代码实现自己的粒子系统:

        //自己配置的粒子系统

        CCParticleSystemQuad *Quad =CCParticleSystemQuad::create("test.plist");

        Quad->setPosition(CCPoint(winsize.width/2, winsize.height/2));

       this->addChild(Quad);

    执行:


    我们能够看到一个火焰在跳跃。粒子系统被载入进来。。

    三、文件的存储

    cocos2d的存储跟做ios开发用的存储差点儿相同。

    。。

    代码:

    voidHelloWorld::onMenuItem(CCObject *obj)

    {

        //播放音效

        SimpleAudioEngine::sharedEngine()->playEffect("select.mp3");

        //创建粒子系统

       CCSize winsize = CCDirector::sharedDirector()->getWinSize();

        CCParticleExplosion *ex =CCParticleExplosion::create();

        ex->setPosition(CCPoint(winsize.width/2, winsize.height/2));

       this->addChild(ex);

        

        //存储ios的本地存储差点儿相同 做过ios开发的肯定熟悉

        CCUserDefault::sharedUserDefault()->setIntegerForKey("px",12);  //通过key存储

        CCUserDefault::sharedUserDefault()->flush();

        

        int px =CCUserDefault::sharedUserDefault()->getIntegerForKey("px");

       CCLOG("px = %d",px);

        

    }

    执行点击:


    能够看到px的值被打印出来


  • 相关阅读:
    C#实现清理系统内存
    WinForm 程序加管理员权限
    DataGridView 绑定List集合后实现自定义排序
    swfupload提示“错误302”的解决方法
    C# WinForm捕获全局异常
    C# WinForm应用程序降低系统内存占用方法
    清除webBrowser 缓存和Cookie的解决方案
    ThInkPHP加密和解密cookie(登录操作)
    prestashop 首页轮播幻灯片图片修改
    网页内容分享到微信
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6951434.html
Copyright © 2011-2022 走看看