【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,哎、最近的博文都是夜里发,第二天谁也看不到,=。  =



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61090.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十二讲:生成树概念及STP技术应用

在传统的交换网络中,设备通过单条链路进行连接,当某一个点或是某一个链路发生故障时可能导致网络无法访问,解决这种问题的办法是在网络中提供冗余链路,但是交换机网络中的冗余链路会产生广播风暴、MAC地址失效等现象,最…

粒子群算法及其改进

1 粒子群算法介绍 求解非线性最优化问题时,有一种比较常用的算法为智能体算法,这里我们介绍的粒子群算法就隶属于智能体算法。 粒子群算法是模拟鸟寻找食物:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食…

系统发育树的生成与美化(MEGA7和iTOL)--1.MEGA7生成系统发育树

#小白学习生成系统发育树 1.序列准备-本文中的数据LOC号是在文献中的附件中所找到的,然后在Phytozome v13中逐个查找氨基酸序列,需要输入所查找的物种名称,以及基因号,如下图所示: 下滑看到蛋白质序列 然后将蛋白质序…

PCL 基于最小生成树(MST)获取单木骨架(粗)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 提取的过程大体上分为两个部分:生成单木MST(最小生成树)以及基于该MST获取大致的骨架结构(线条)。 具体的计算过程如下所述: 1、首先应用Delaunay三角剖分来构造初始图。Delaunay三角剖分是MST计算的基础,因…

详解综合学习粒子群算法——CLPSO(附该文作者给出的matlab代码)

最近团队出了两篇基于CLPSO[1]的改进算法,这里根据自己的理解分析一下这个综合学习的算法,并将文章作者给出的源代码分享出来供大家学习:https://download.csdn.net/download/Bernard_S/12612817 (免费下载,本身就是从作者的主页搬…

进化算法之粒子群算法和Matlab实现(多维)

(粒子群算法进阶讲解传送门:(https://blog.csdn.net/DBLLLLLLLL/article/details/103036067) ) 前面一篇文章介绍了遗传算法,这里再介绍一种进化算法,称为粒子群算法。同遗传算法类似,粒子群算法也是仿照了…

粒子群算法及通过惯性权重和学习因子对其进行改进—MATLAB实现

本文的代码将放在最后,需要的小伙伴们可以免费获取哦!!! 不要忘记点赞加关注奥😋😋 文章目录 粒子群算法一、理论基础1、介绍2、核心公式3、图形直观解释 二、问题描述三、解题思路四、MATLAB实现1、参数设…

可查看其他用户聊天记录,ChatGPT 爆出大BUG

ChatGPT一经推出,迅速出圈,用户赞誉如云,“绝对改变世界”、“第四次工业革命的“火药桶”、“苍天啊,它咋啥都会,我失业了”,一时间 ChatGPT 成为完美的代言词。 然而近日,ChatGPT 遇到了大麻烦…

ChatGPT 和 Midjourney 将改变我们的生活,日常工作流程将完全改变并与这些新型工具集成

上周末我花了很多时间先玩 Open AI ChatGPT,然后玩 Midjourney。起初我笑了,然后我开始完全被各种可能性所困扰,然后我终于意识到了它的潜力,并开始将其用于更有成效的工作。 注意:我本可以用它来制作一个引人入胜的点击诱饵标题,但我没有. 这是我问 Open AI 聊天的第一…

博弈的意思_博弈是什么意思(博弈最通俗的解释)

国学智慧《鬼谷子》:在封闭和开合的状态中,达到自己想要的目的。 鬼谷子是一本智谋之书,里面主要讲述的就是在和别人博弈的时候,以什么样的心态和姿态,来达到自己想要的目的。也是为人处世,处世权谋之中,不可不读的一本书。鬼谷子这本书中的捭阖术,其中的道理也要灵活多…

你是伪民主式父母吗?

经常给青少年做咨询,发现一个有趣的现象,就是关于他们家庭的养育方式,孩子和父母的表述是不一样的,父母说他们是民主式的家长,给孩子尽量多的自由,不去过多管制;而孩子说自己的父母是特别专制和…

聪明人是怎么说话办事的?曾国藩这幅书法对联,两句话讲解透彻!

晚清名臣曾国藩的经典对联: “大处着眼,小处着手;群居守口,独居守心”! 曾国藩是第一等的聪明人,能在复杂的官场中生存,还能赢得会做人的美誉,关键在于他做到了两件事,一…

嵌入式为什么没有软件架构师?

点击上方“小麦大叔”,选择“置顶/星标公众号” 福利干货,第一时间送达 我从事嵌入式软件开发有6、7个年头,bsp,驱动,应用软件,android hall,framework等都有涉猎。平时除了关注嵌入式行业的发展…

总结一下进程是什么

1、我们常说的进程是什么? 进程(Process)是计算机中的程序关于某数据集合上的运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 进程是程序的基本执的实体 2、进程状态 就绪状态 进程已获得除处…

Vue 方法中this指向 引起的祸端

可忽略 最近在写 vue 项目, 使用 总监封装 好的框架,遇到一个问题: vue 实例 methods 中的 方法在传递后,通过 函数名() 方式调用后, 其内部 this 竟然没有指向 window。当时就不服了&#xff…

PHP语言25周年,PHP是世界上最好的语言

1995年6月8日,PHP 1.0版本正式问世,目前已经更迭到7.4版本,PHP 8.0 Alpha1版本也有望于今年6月中旬发布。25周年之际,杜蕾斯官方微博发文庆祝:“#PHP语言25周年#不管PHP是不是世界上最好的语言,反正—— pr…

“5G 太耗电,关掉它!”

作者 | Carol 出品 | CSDN(ID:CSDNnews) 随着5G的普及,如今已经有很多手机用户已经体验到了5G的便捷了。无论国内外,从各大运营商及手机厂商向5G的投入中可见,5G的普及只不过是时间问题罢了。 但就在大家都…

Android App 耗电量统计

前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有。平时在手机“设置- 电量”看到的数据 就是系统调用内部API的统计结果。 基础概念 1. 手机…

泰安柒柒:一篇文章带你了解爆火的ChatGPT

OpenAI发布聊天机器人模型ChatGPT,迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动,可以回答问题、承认错误、挑战不正确的前提、拒绝不适当的请求。 那么,ChatGPT为什么会爆火呢? 1 ChatGPT是什么&#…