cocos2d-x ios遊戲開發初認識(九) 音效、粒子系統與儲存,cocos2d-xios

來源:互聯網
上載者:User

cocos2d-x ios遊戲開發初認識(九) 音效、粒子系統與儲存,cocos2d-xios

我們知道,一個遊戲少不了聲音,一些好聽的聲音會提起你對遊戲的興趣,當然做好聽的聲音不是我們要學的,我們的目的是把聲音在適當的時候放出來,順便在這節中會說下簡單的粒子系統和檔案儲存體。

一、聲音的播放:

1、建立一個cocos2d工程添加相應的聲音圖片資源:


播放聲音所用到的內容:


代碼:

這裡可以先在RootViewController.mm裡面設定螢幕 禁止旋轉

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

 //設定方向

    returnUIInterfaceOrientationIsPortrait(interfaceOrientation);

}

- (BOOL) shouldAutorotate {

   returnNO; //不允許

}

把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);

運行:


添加按鈕:

    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");    

}

運行:

有聲音發出,點擊按鈕會有音效發出。。。。這就簡單的實現聲音的播放。

二、介紹簡單的粒子系統


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);

}

運行 點擊按鈕:


由於動畫太快,效果不好,大家可以自己示範。。

下面用自己的粒子系統 網路有很多做粒子系統的軟體在這裡我用的是ParticleDesigner開啟:


隨便開啟一個


然後點擊儲存按鈕

第三個


√一定要選儲存的檔案類型為plist檔案,將儲存的plist檔案添加到工程中去。。

代碼實現自己的粒子系統:

    //自己配置的粒子系統

    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的值被列印出來



iOS遊戲編程之從零開始—Cocos2d-x與cocos2d引擎遊戲開發誰有完全版?

到麥可網找,500元1年
 
ios遊戲開發是用cocos2d還是cocos2d-x,如果用cocos2d-x,多線程怎辦,多線程用objective-c調用?

用pthread實現跨平台。
用cocoa的NSTread或是GCD是無法跨平台的。
你也許會oc的多線程,但在跨平台開發的時候果斷摒棄掉吧。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.