我們知道,一個游戲少不了聲音,一些好聽的聲音會提起你對游戲的興趣,當然做好聽的聲音不是我們要學的,我們的目的是把聲音在適當的時候放出來,順便在這節中會說下簡單的粒子系統和文件存儲。
一、聲音的播放:
1、新建一個cocos2d工程添加相應的聲音圖片資源:
播放聲音所用到的內容:
代碼:<喎?/kf/ware/vc/" target="_blank" class="keylink">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的值被打印出來