cocos2d-x ios游戏开发初认识(八) 音效、粒子系统与存储

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

一、声音的播放:

1、新建一个cocos2d工程添加相应的声音图片资源:

播放声音所用到的内容:

代码:

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

//设置方向

return
UIInterfaceOrientationIsPortrait(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);

运行:

添加按钮:

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的值被打印出来

cocos2d-x ios游戏开发初认识(八) 音效、粒子系统与存储,布布扣,bubuko.com

时间: 2024-11-05 04:33:40

cocos2d-x ios游戏开发初认识(八) 音效、粒子系统与存储的相关文章

cocos2d-x ios游戏开发初认识(八) 触摸事件与碰撞检测

玩过植物大战僵尸都知道,要在草坪里放一朵向日葵或者其它的植物只需触摸那个植物将其拖入到想要摆放的位置,这其实就是这节要写的触摸事件.还可以发现当我们的僵尸出来的时候,我们的小豌豆会发子弹攻击僵尸,当子弹与僵尸碰撞的时候子弹自动消失,这就这节要说的碰撞检测. 下面具体看代码的实现: 做ios开发有触摸事件cocos2d同样也有 一.先覆写touch事件 .h文件 using namespace cocos2d; class MainScene:public CCLayer { private: v

cocos2d-x ios游戏开发初认识(八) 触摸事件与碰撞检測

玩过植物大战僵尸都知道,要在草坪里放一朵向日葵或者其他的植物仅仅需触摸那个植物将其拖入到想要摆放的位置,这事实上就是这节要写的触摸事件.还能够发现当我们的僵尸出来的时候,我们的小豌豆会发子弹攻击僵尸,当子弹与僵尸碰撞的时候子弹自己主动消失,这就这节要说的碰撞检測. 以下详细看代码的实现: 做ios开发有触摸事件cocos2d相同也有 一.先覆写touch事件 .h文件 using namespace cocos2d; class MainScene:public CCLayer { privat

cocos2d-x ios游戏开发初认识(五) CCsprite精灵类

这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上添加如下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png"); CCSize winSize  =CCDirector::sharedDirector()->getWinSize(); //得到屏幕的尺寸 bg->setPosition(ccp(winSize.width/2, winSize.height/2)); this->addCh

cocos2d-x ios游戏开发初认识(七) 简单的动画

前面有一节说了帧动画,就是让精灵改变自己的位置.形状.大小来实现相应的动作,这讲主要是要通过一些方法来实现精灵的移动,产生各种炫丽的动画,也可能让你找到一点游戏场景. 下面具体根据代码分析: 为了清晰最好将前几节的代码注释掉. //根据前面的知识先创建一个菜单 CCMenuItemFont *item =CCMenuItemFont::create("开始游戏",this, menu_selector(MainScene::onMenuItem));//点击事件 //添加到菜单栏里面

cocos2d-x ios游戏开发初认识(六) 渲染的优化

做程序开发肯定要考虑到内存的优化,毕竟iphone本身的内存就不是非常大.这一节主要说这个cocos2d开发对内存的优化,详细表如今,既能够对同样的精灵(图片)仅仅渲染一次,也能够对不能的精灵仅仅渲染一次. 以下是程序的做法,先屏蔽前面的代码. 先简介一下 CCSpriteBatchNode类,它是用来优化游戏渲染效率的.CCSpriteBatchNode 中的全部CCSprite仅仅会被渲染1次,因此能够提高游戏的FPS.限制:增加到CCSpriteBatchNode 中的CCSprite必须

【Cocos2D研究院之游戏开发】

http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发] 201211-19 Cocos2D研究院之打开全新ViewController与返回(八) 雨松MOMO [Cocos2D研究院之游戏开发] 围观5745次 17条评论          之前cocos2d的文章都是由魏凯同学维护,从今天开始我也会抽时间写点cocos2d的文章.最近在研究如何将IOS游戏与软件结合起来.通常游

iOS 游戏开发 博客

1. http://www.cnblogs.com/kesalin/archive/2012/11/10/ios_game_dev_resource.html   ( iOS游戏开发教程) 最近几天仔细了解了iOS游戏开发引擎,常用的cocos2d,Unity引擎,那么Unity是非免费的,而cocos2d则是免费开源的: 最后促使我选择cocos2d的原因有两点: 1.最重要的原因是它对应的开发工具,尤其是 “ParticleDesigner”,粒子系统编辑器,非常的喜欢(需付费$7.99美元

史上最全最完整的IOS 游戏开发 PDF电子书定制下载

<iOS 5游戏开发>作者:(新西兰)James·Sugrue著 页数:191 出版社:北京市:人民邮电出版社 出版日期:2012.08 简介:<iOS5游戏开发>是一本iOS5游戏开发的基础入门书.全书使用通俗易懂的简单实例,带领读者经历构建经典动作游戏的整个周期.读者在本书的阅读过程中,将经历从开发概念.规划设计一直到编写实际代码的全过过程.本书的每一章,都将演示游戏创建过程中的一个逻辑步骤,读者将在其中学习如何创建Sprite,用触摸屏.重力感应器和屏幕游戏棒控制玩家角色等-

iOS游戏开发游戏功能之外的东西

对于一个游戏的开发,我们除了完成游戏的功能之外,还有多少东西我们需要考虑呢? 很多,也很烦! 但做过一遍之后下一次就会很简单. 都有什么东西我们想添加到游戏当中呢? (1)分享功能 (2)评分功能 (3)游戏中心(GameCenter) (4)广告(iAd以及其他广告比如Admob) (5)应用内购买 (6)... 这些功能并不是完全必要的,要根据情况考虑.但比如分享,评分,这些功能能提高一个游戏的扩散速度,显示是值得每一个游戏都添加的功能. 下面稍微总结一下每一个功能的基本用法. PS:这只是