cocos2d-x ios游戏开发初认识(九) 音效、粒子系统与存储
我们知道。一个游戏少不了声音。一些好听的声音会提起你对游戏的兴趣,当然做好听的声音不是我们要学的,我们的目的是把声音在适当的时候放出来。顺便在这节中会说下简单的粒子系统和文件存储。
一、声音的播放:
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游戏开发初认识(九) 音效、粒子系统与存储的更多相关文章
- cocos2d-x ios游戏开发初认识(六) 渲染的优化
做程序开发肯定要考虑到内存的优化,毕竟iphone本身的内存就不是非常大.这一节主要说这个cocos2d开发对内存的优化,详细表如今,既能够对同样的精灵(图片)仅仅渲染一次,也能够对不能的精灵仅仅渲染 ...
- cocos2d-x ios游戏开发初认识(八) 触摸事件与碰撞检測
玩过植物大战僵尸都知道,要在草坪里放一朵向日葵或者其他的植物仅仅需触摸那个植物将其拖入到想要摆放的位置,这事实上就是这节要写的触摸事件.还能够发现当我们的僵尸出来的时候,我们的小豌豆会发子弹攻击僵尸, ...
- cocos2d-x ios游戏开发初认识(五) CCsprite精灵类
这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上加入例如以下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png ...
- 【Cocos2D研究院之游戏开发】
http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发] 201211-19 Co ...
- 开发者经验谈:如何一天时间搞定iOS游戏开发?
开发者经验谈:如何一天时间搞定iOS游戏开发? 在一天时间里将完成iPhone游戏开发由梦想变为现实? 本文作者给出了从创意转变成现实的详细答案.使用苹果原生游戏引擎SpriteKit,遵循一定的原则 ...
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...
- iOS 11开发教程(九)iOS11数据线连接真机测试
iOS 11开发教程(九)iOS11数据线连接真机测试 在Xcode 7.0之后,苹果公司在开发许可权限上做了很多的改变,在测试App方面取消了一些限制.在Xcode7.0之前的版本,苹果公司只向注册 ...
- ios游戏开发 Sprite Kit教程:初学者 1
注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点 Sprite Kit vs Cocos2D-iPhone vs Cocos2D- ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(10)-音乐和音效
本章音效文件都来自于公共许可: http://files.cnblogs.com/mignet/sounds.zip 在游戏中,播放背景音乐和音效是基本的功能. Libgdx提供了跨平台的声音播放功能 ...
随机推荐
- scikit-learn系列之如何存储和导入机器学习模型
scikit-learn系列之如何存储和导入机器学习模型 如何存储和导入机器学习模型 找到一个准确的机器学习模型,你的项目并没有完成.本文中你将学习如何使用scikit-learn来存储和导入机器 ...
- Hadoop 三剑客之 —— 分布式文件存储系统 HDFS
一.介绍 二.HDFS 设计原理 2.1 HDFS 架构 2.2 文件系统命名空间 2.3 数据复制 2.4 数据复制的实现原理 2.5 副本的选择 2 ...
- Docker+ELK搭建
换了个运行环境,重新搭建一套公司本地内部的ELK,之前也搭过(可访问:https://yanganlin.com/31.html),最近做什么事情都想用Docker,这次也用Docker,还算顺利,没 ...
- php配置站点
第一步:需要打开三个文件 1.C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf 2.C:\wamp\bin\apache\apache2.4.9\conf\ ...
- javascript一个重要知识点:事件。
javascript是事件驱动的,那什么是事件?事件就是在javascript中被侦测到DOM元素行为,就称之为javascript事件. 2.事件的三个阶段 事件的三个阶段分别为: 1.捕获阶段 2 ...
- struts.xml里面子元素的配置
<struts> <!-- package:包,struts2使用package来组织模块 name属性:必须,用于其他的包引用当前包 extends:当前包继承哪个包,继承的,即可 ...
- Comparison of programming languages
The following table compares general and technical information for a selection of commonly used prog ...
- Reflection (computer programming) -反射-自身结构信息
n computer science, reflection is the ability of a computer program to examine, introspect, and modi ...
- CF1012B Chemical table 构造_思维_并查集
我们可以将横坐标和纵坐标看成是点.发现这些点之间是有传递性的. 题中说明,如果有矩阵中三个顶点被选,则底角的点也会被覆盖,发现这些点之间是有传递性的.那么我们最终达到的目的就是使整个图中只有 111 ...
- D. Destruction of a Tree_dfs序_性质分析_思维题
题意: 给定一棵树,每次可以拆掉一个树上度数为偶数的点,拆掉该点后,与该点所连的所有边都会被删掉.问,是否有一种删点顺序可以删掉所有的点.如果有,则输出任意一组解. 数据范围:线性做法 O(n)O(n ...