【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
李华明Himi 原创,转载务必在明显处注明:
转载自 【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/472.html
一直以来Himi特别想在游戏中使用粒子系统,但是之前做J2me与Android中发现使用粒子做的效果都会造成游戏运行内存的一个负担,所以一直很遗憾,那么在iOS游戏开发中,可以说必须要使用粒子啦,还是苹果硬件给力;看过我一开始刚写cocos2d博文的时候我就说过因为cocos2d的粒子编辑器很给力,所以也是我选用cocos2d引擎的一部分原因;
粒子编辑器名称:ParticleDesigner,界面截图如下:
前两天粒子编辑器购买成功(很便宜,不到10美金,比图片打包工具TP便宜多了),耍了两天后有些后悔,因为这个粒子编辑器虽然看界面像是开发编辑器的作者提供了很多的特效一样,其实都是cocos2d中例子罢了,但是反过来想,人家给做成可视编辑省去的时间远远超值于编辑器的钱了!咳咳,又扯远了,回到正题;
至于编辑器或者在cocos2d中添加粒子特效的方法,网上N多资料和教程,这里就不多说了,下面简单说今天重点的问题;
为了让大家更清楚的知道问题所在,我新建一个cocos2d的项目:
1. 首先在屏幕中绘制字符串(将一个CCLabelTTF对象添加到当前Layer中);
CCLabelTTF *label = [CCLabelTTF labelWithString:@"Welcome--Himi" fontName:@"Marker Felt" fontSize:64];CGSize size = [[CCDirector sharedDirector] winSize];label.position = ccp( size.width /2 , size.height/2 );[self addChild: label];
2.然后我将使用粒子编辑器生成的一个类似陨石导出一个名为“himi.plist”粒子文件(其中包含粒子的所有属性),将此文件导入项目中并添加到当前layer中;
//添加一个粒子特效CCParticleSystem *tempSystem = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"himi.plist"];//tempSystem.positionType=kCCPositionTypeRelative;//备注1tempSystem.positionType=kCCPositionTypeFree;tempSystem.position=ccp(100,100); [self addChild:tempSystem];
这里的备注1,大家留意下,后面会详细说,这里先无视;到此,整个layer中添加了一个字符串和一个粒子特效!运行项目 截图如下:
这里大概说下,粒子我设定的是一直循环播放的,是通过编辑器修改的参数,OK,下面开始到重点了:
现在我使用一个选择器 [self scheduleUpdate]; ,让当前的layer的X坐标不断+3,代码如下:
-(void)update:(ccTime)time{self.position=ccp(self.position.x+3,self.position.y);
}
这里多嘴一句,在cocos2d坐标的修改尽可能的使用整体赋值,比如更改坐标,虽然这里只是更改x轴,但是我仍然对整个position进行的修改;
然后大家都应该知道,当前的layer上的粒子特效和CCLabelTTF都会跟着移动,但是对不起,这里出现问题,运行截图如下:
这里大家肯定很奇怪,粒子效果应该是垂直的,但是实际却不是,其实这个问题真的很细节,因为一般粒子特效都是用于很短的时间进行播放-消失;
这里大概说下,其实特效的的发射器也就是粒子的起始座标其实确实一直跟着layer移动了,但是创建出来后的粒子却一直显示在创建时候的座标进行自身运动,并没有按照我们想象的移动方式进行整体移动;
讲了这么多其实这个问题一句代码就解决了,那就是最上面创建粒子特效的代码的备注1,
//tempSystem.positionType=kCCPositionTypeRelative;//备注1
这个positionType其实就是设置当前粒子特效中所有粒子的位置类型,默认情况下是自由模式,代码如下:
kCCPositionTypeFree
那么备注1的,kCCPositionTypeRelative 是相对模式,所以只要这里对粒子进行设置位置类型为相对模式即可,问题解决;
OK,童鞋们该说了,这么容易描述清楚的问题与解决方案直接说不就好了 =。 =我也这么想的,但是这里我需要说两点:
1.如果博文上来就针对问题,巴拉巴拉的说一堆,那么对于还没接触粒子这一块的童鞋而言,一点用没有,完全是丈二的和尚,xxxx你懂的~
2.讲的这么多,还是我老说的一句话:细节决定成败;其实细节也如同基础,基础不牢,何谈提高?!
好啦,这一篇就到这里,继续忙了;现在时刻:凌成1.24,哎、最近的博文都是夜里发,第二天谁也看不到,=。 =
【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;相关推荐
- 【IOS-COCOS2D游戏开发之十】添加粒子系统特效并解决粒子特效与LAYER之间的坐标问题;...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/472.html ...
- 初学者开发iOS游戏的入门必备用书——iOS 5 cocos2d游戏开发实战(第2版)
如果想接触iOS游戏开发,今天笔者就推荐一本"大杀器"--<iOS 5 cocos2d游戏开发实战(第2版)>(当当链接) 为零基础的"设想过自己写个电脑游戏 ...
- iOS 5 cocos2d游戏开发实战(第2版)
<iOS 5 cocos2d游戏开发实战(第2版)> 基本信息 作者: [美]Steffen Itterheim Andreas Low [作译者介绍] 译者: 同济大学苹果俱乐部 丛书名 ...
- java游戏开发入门(十) -粒子特效
java游戏开发入门十 - 粒子特效 java游戏开发入门十 - 粒子特效 前言 编码 创建一个粒子发射器,并将粒子发射器添加到实体对象 效果图 完整代码 完整项目 java游戏开发入门十 - 粒子特 ...
- Cocos2d游戏开发之如何解包获得pvr.ccz中的美术资源
Cocos2d游戏开发之如何解包获得pvr.ccz中的美术资源 在大部分时候,Cocos2d游戏会将美术资源打包以减轻性能要求,提高加载速度.而如果我们需要获得其中的美术资源,就得解包.这里以plis ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十五讲:HTML教程笔记
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十五讲:HTML教程笔记 摘要:通过前节<第十三讲:盒子的定位实例>学习了网站建设中的DIV+CSS中实例综合应用介绍.本节对HTML试题笔记进 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十讲:深入理解盒子模型
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十讲:深入理解盒子模型 摘要:通过前节<第九讲:块元素.行内元素.标准流.盒子模型>学习了前节介绍了贵阳网站建设中的DIV+CSS中类选择器.i ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十二讲:盒子的定位方式
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十二讲:盒子的定位方式 摘要:通过前节<第十一讲:浮动>学习了贵阳网站建设中的DIV+CSS中盒子模型和浮动进行介绍.框模型是CSS的基础,本文 ...
- [转]cocos2d游戏开发,常用工具集合
cocos2d游戏开发,常用工具集合 原文地址:http://www.cocoachina.com/bbs/read.php?tid-68951.html 位图字体工具Bitmap Font Tool ...
最新文章
- SSH登录很慢问题的解决
- php接口图片转二进制,怎么在php项目中对图片进行二进制转换
- 使用 Hexo + Next 搭建静态博客
- 最大子序列求和_算法——求最大子段和
- Scaffolding Template on Asp.Net Core Razor Page
- Last non-zero Digit in N! HDU - 1066
- YASnippet - emacs 的代码片段管理工具
- 百度测试开发提前批一面面经
- mongodb objetcid_mongodb(1)
- smarty3中文手册
- 重大福利!优云UEM重磅上线!
- 【超分辨率】【深度学习】SRCNN pytorch代码(附详细注释和数据集)
- 11-TensorFlow 基于ResNet的轴承故障诊断
- 电脑分屏没有声音_怎样解决qq屏幕分享没有声音问题
- 版本控制工具svn和git
- ID3、C4.5决策树算法的Python实现(注释详细)
- windows操作系统---1
- 笔记本无线网卡没有连接到计算机,笔记本没有无线网络连接怎么办 解决方法介绍【图解】...
- oracle10漏洞修复,Oracle 2017年10月安全公告,修复252个安全漏洞
- jquery:$elem.is(‘:hidden‘)的含义