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

一、声音的播放:

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->,winsize.));//3.0以后的做法调用构造函数

this->addChild(bg);

执行:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRwZW5nNTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

加入button:

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

item->,));

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会有音效发出。。。

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

二、介绍简单的粒子系统

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRwZW5nNTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

voidHelloWorld::onMenuItem(CCObject *obj)

{

//播放音效

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

//创建粒子系统

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

CCParticleExplosion *ex =CCParticleExplosion::create();

ex->,
winsize.));

this->addChild(ex);

}

执行 点击button:

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

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

随便打开一个

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRwZW5nNTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

然后点击保存button

第三个

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRwZW5nNTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

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

//自己配置的粒子系统

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

Quad->,
winsize.));

this->addChild(Quad);

执行:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRwZW5nNTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

三、文件的存储

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

。。

代码:

voidHelloWorld::onMenuItem(CCObject *obj)

{

//播放音效

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

//创建粒子系统

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

CCParticleExplosion *ex =CCParticleExplosion::create();

ex->,
winsize.));

this->addChild(ex);

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

);
 //通过key存储

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

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

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

}

执行点击:

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

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

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

    做程序开发肯定要考虑到内存的优化,毕竟iphone本身的内存就不是非常大.这一节主要说这个cocos2d开发对内存的优化,详细表如今,既能够对同样的精灵(图片)仅仅渲染一次,也能够对不能的精灵仅仅渲染 ...

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

    玩过植物大战僵尸都知道,要在草坪里放一朵向日葵或者其他的植物仅仅需触摸那个植物将其拖入到想要摆放的位置,这事实上就是这节要写的触摸事件.还能够发现当我们的僵尸出来的时候,我们的小豌豆会发子弹攻击僵尸, ...

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

    这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上加入例如以下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png ...

  4. 【Cocos2D研究院之游戏开发】

    http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发]   201211-19 Co ...

  5. 开发者经验谈:如何一天时间搞定iOS游戏开发?

    开发者经验谈:如何一天时间搞定iOS游戏开发? 在一天时间里将完成iPhone游戏开发由梦想变为现实? 本文作者给出了从创意转变成现实的详细答案.使用苹果原生游戏引擎SpriteKit,遵循一定的原则 ...

  6. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

  7. iOS 11开发教程(九)iOS11数据线连接真机测试

    iOS 11开发教程(九)iOS11数据线连接真机测试 在Xcode 7.0之后,苹果公司在开发许可权限上做了很多的改变,在测试App方面取消了一些限制.在Xcode7.0之前的版本,苹果公司只向注册 ...

  8. ios游戏开发 Sprite Kit教程:初学者 1

    注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点 Sprite Kit vs Cocos2D-iPhone vs Cocos2D- ...

  9. [libgdx游戏开发教程]使用Libgdx进行游戏开发(10)-音乐和音效

    本章音效文件都来自于公共许可: http://files.cnblogs.com/mignet/sounds.zip 在游戏中,播放背景音乐和音效是基本的功能. Libgdx提供了跨平台的声音播放功能 ...

随机推荐

  1. 用PHP去实现静态化

    我们在PHP站点开发过程中为了站点的推广或者SEO的须要,须要对站点进行一定的静态化,这里设计到什么是静态页面,所谓的静态页面.并非页面中没有动画等元素,而是指网页的代码都在页面中,即不须要再去执行P ...

  2. Android 运行 gson.toJson(object) 报java.lang.StackOverflowError异常

    如以下的代码,运行后报java.lang.StackOverflowError错误: MusicSavedInfo musicSavedInfo=new MusicSavedInfo(currentS ...

  3. 三种数据库日期转字符串对照sql server、oracle、mysql(V4.11)

    三种数据库日期转换对照: http://blog.csdn.net/zljjava/article/details/17552741 SQL类型转换函数:cast(type1 as type2) 数据 ...

  4. 0xC0000005;Access Violation(栈区空间很宝贵, linux上栈区空间默认为8M,vc6下默认栈空间大小为1M)

    写C/C++程序最怕出现这样的提示了,还好是在调试环境下显示出来的,在非调试状态就直接崩溃退出. 从上述汇编代码发现在取内存地址 eax+38h 的值时出错, 那说明这个地址非法呗, 不能访问, 一般 ...

  5. 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

    /**  * 功能:给定数量不限的硬币.币值为25分,10分.5分.1分,计算n分有几种表示法. */ public static int makeChange(int n){ return make ...

  6. 0x01 位运算

    都比较基础吧. 知识点 1.快速幂和快速乘(这里有一个用long double舍弃精度的做法,但是感觉既不稳又没用) 2.懒人写边目录的时候的k^1 3.lowbit,得到的是低到高第一个1的位.求一 ...

  7. 英语发音规则---T字母

    英语发音规则---T字母 一.总结 一句话总结: 1.T一般发[t]? ten [ten] num.十 letter [ˈletə(r)] n.信; 证书 meet [mi:t] vt.& v ...

  8. 绘图中的drawRect

    rect参数:代表的是当前view的bounds 1 为什么要在drawRect方法里面写绘图代码 因为只有在这个方法中才能获取到当前view相关的图形上下文对象 有了这个图形上写文对象后才能进行绘图 ...

  9. Core篇——初探Core的认证,授权机制

    目录 1.Cookie-based认证的实现 2.Jwt Token 的认证与授权 3.Identity Authentication + EF 的认证 Cookie-based认证的实现 cooki ...

  10. <video> controlsList

    Audio/Video Updates in Chrome 58 <video controls controlsList="nofullscreen nodownload norem ...