cocos2d-x ios遊戲開發初認識(八) 音效、粒子系統與存儲 – iPhone手機開發技術文章 iPhone軟體開發教學課程

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

一、聲音的播放:

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

播放聲音所用到的內容:

代碼:vcD4KPHA+1eLA77/J0tTPyNTaUm9vdFZpZXdDb250cm9sbGVyLm1twO/D5sno1sPGwcS7IL371rnQ/deqPC9wPgo8cD48L3A+CjxwPi0gKEJPT0wpc2hvdWxkQXV0b3JvdGF0ZVRvSW50ZXJmYWNlT3JpZW50YXRpb246KFVJSW50ZXJmYWNlT3JpZW50YXRpb24paW50ZXJmYWNlT3JpZW50YXRpb24gezwvcD4KPHA+CiAvL8no1sO3vc/yPC9wPgo8cD4KICAgIHJldHVybgpVSUludGVyZmFjZU9yaWVudGF0aW9uSXNQb3J0cmFpdChpbnRlcmZhY2VPcmllbnRhdGlvbik7PC9wPgo8cD59PC9wPgo8cD4tIChCT09MKSBzaG91bGRBdXRvcm90YXRlIHs8L3A+CjxwPiAgIApyZXR1cm4gTk87IAovL7K71MrQ7TwvcD4KPHA+fTwvcD4KPHA+sNFIZWxsb1dvcmxkIMbk0+C0+sLryKu2vMm+tfQg1rvB9M/Cs/XKvLuvsr+31jwvcD4KPHA+PC9wPgo8cD4KYm9vbCBIZWxsb1dvcmxkOjppbml0KCk8L3A+CjxwPns8L3A+CjxwPgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vPC9wPgo8cD4KICAgIC8vIDEuIHN1cGVyIGluaXQgZmlyc3Q8L3A+CjxwPiAgIAppZiAoICFDQ0xheWVyOjppbml0KCkgKTwvcD4KPHA+ICAgIHs8L3A+CjxwPgogICAgICAgIHJldHVybiAKZmFsc2U7PC9wPgo8cD4gICAgfTwvcD4KPHA+CiAgICByZXR1cm4gCnRydWU7PC9wPgo8cD59PC9wPgo8YnI+CgrM7bzTsbO+sKO6CjxwPjwvcD4KPHA+CiAgICAvL8ztvNOxs76wzbzGrDwvcD4KPHA+ICAgCkNDU2l6ZSB3aW5zaXplID0gQ0NEaXJlY3Rvcjo6c2hhcmVkRGlyZWN0b3IoKS0+Z2V0V2luU2l6ZSgpOzwvcD4KPHA+ICAgCkNDU3ByaXRlICpiZyA9IENDU3ByaXRlOjpjcmVhdGUo”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”);

事件的點擊函數:

void
HelloWorld::onMenuItem(CCObject *obj)

{

//播放音效

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

}

運行:

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

二、介紹簡單的粒子系統

cocos2d已經有自己的粒子系統當然也可以用自己的,下面通過代碼實現一個內部的粒子系統:

void
HelloWorld::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開發用的存儲差不多。。。

代碼:

void
HelloWorld::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的值被打印出來

發佈留言