`
shuai1234
  • 浏览: 972427 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

【Cocos2d游戏开发之十】添加粒子特效并解决粒子系统特效与Layer之间的坐标问题;

 
阅读更多

   一直以来Himi特别想在游戏中使用粒子系统,但是之前做J2me与Android中发现使用粒子做的效果都会造成游戏运行内存的一个负担,所以一直很遗憾,那么在iOS游戏开发中,可以说必须要使用粒子啦,还是苹果硬件给力;看过我一开始刚写cocos2d博文的时候我就说过因为cocos2d的粒子编辑器很给力,所以也是我选用cocos2d引擎的一部分原因;            

粒子编辑器名称:ParticleDesigner,界面截图如下:

 

 前两天粒子编辑器购买成功(很便宜,不到10美金,比图片打包工具TP便宜多了),耍了两天后有些后悔,因为这个粒子编辑器虽然看界面像是开发编辑器的作者提供了很多的特效一样,其实都是cocos2d中例子罢了,但是反过来想,人家给做成可视编辑省去的时间远远超值于编辑器的钱了!咳咳,又扯远了,回到正题;

      至于编辑器或者在cocos2d中添加粒子特效的方法,网上N多资料和教程,这里就不多说了,下面简单说今天重点的问题;

      为了让大家更清楚的知道问题所在,我新建一个cocos2d的项目:

      1. 首先在屏幕中绘制字符串(将一个CCLabelTTF对象添加到当前Layer中);

 

  1. CCLabelTTF *label = [CCLabelTTF labelWithString:@"Welcome--Himi" fontName:@"Marker Felt" fontSize:64]; 
  2. CGSize size = [[CCDirector sharedDirector] winSize]; 
  3. label.position =  ccp( size.width /2 , size.height/2 ); 
  4. [self addChild: label]; 

 

 2.然后我将使用粒子编辑器生成的一个类似陨石导出一个名为“himi.plist”粒子文件(其中包含粒子的所有属性),将此文件导入项目中并添加到当前layer中;

 

  1. //添加一个粒子特效 
  2. CCParticleSystem *tempSystem = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"himi.plist"]; 
  3. //tempSystem.positionType=kCCPositionTypeRelative;//备注1 
  4. tempSystem.positionType=kCCPositionTypeFree; 
  5. tempSystem.position=ccp(100,100);   
  6. [self addChild:tempSystem]; 

这里的备注1,大家留意下,后面会详细说,这里先无视;到此,整个layer中添加了一个字符串和一个粒子特效!运行项目 截图如下:

 

 

这里大概说下,粒子我设定的是一直循环播放的,是通过编辑器修改的参数,OK,下面开始到重点了:

    现在我使用一个选择器 [self scheduleUpdate]; ,让当前的layer的X坐标不断+3,代码如下:

 

  1. -(void)update:(ccTime)time{ 
  2.     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,哎、最近的博文都是夜里发,第二天谁也看不到,=。  =

 

 

 

本文出自 “Himi” 博客,请务必保留此出处http://xiaominghimi.blog.51cto.com/2614927/663812

分享到:
评论

相关推荐

    cocos2d 粒子特效 ios

    在iOS游戏开发中,Cocos2d是一款广泛使用的2D游戏引擎,它为开发者提供了丰富的功能,包括动画、物理模拟、碰撞检测以及我们关注的粒子特效。本文将深入探讨Cocos2d在iOS平台上的粒子特效应用。 粒子系统是游戏开发...

    cocos2d游戏开发

    本教程涵盖从基础到进阶的cocos2d游戏开发全过程,共13章节,旨在帮助开发者快速掌握这一强大的游戏引擎。 第一章:入门介绍 本章首先会介绍cocos2d的历史、特性以及它在游戏开发中的应用。然后,会引导初学者安装...

    cocos2d-x 初级粒子爆炸特效

    总的来说,"cocos2d-x 初级粒子爆炸特效"项目涵盖了Cocos2d-x游戏开发的基础知识,包括粒子系统、资源管理、项目构建和事件处理。通过实践这个项目,开发者可以学习到如何利用Cocos2d-x创建动态的视觉效果,提升游戏...

    cocos2d游戏开发之旅

    《cocos2d游戏开发之旅》是一本专为游戏开发初学者设计的教程,它深入浅出地介绍了使用cocos2d框架进行移动游戏开发的基本概念和技术。cocos2d是一个广泛使用的开源游戏引擎,特别适合开发2D游戏,其易用性、灵活性...

    cocos2d游戏开发电子书超清

    《cocos2d游戏开发电子书超清》是一本针对初学者的游戏开发指南,专注于cocos2d框架的使用。cocos2d是一款强大的、开源的2D游戏引擎,广泛应用于iPhone游戏开发以及移动平台的其他应用开发。本书旨在帮助读者快速...

    Cocos2D游戏之旅(六):流星、烟花、火焰、下雪、下雨粒子特效---源代码

    Cocos2D游戏之旅(六):流星、烟花、火焰、下雪、下雨粒子特效---源代码 博客效果演示与讲解地址:http://blog.csdn.net/qiulanzhu/article/details/47910781

    cocosCreator圣诞节多种动画效果粒子特效Demo.zip

    在cocosCreator这个强大的2D游戏开发框架中,开发者可以轻松地创建出丰富的动画效果和粒子特效。这个“cocosCreator圣诞节多种动画效果粒子特效Demo”就是一个生动的例子,它展示了如何利用cocosCreator的工具和功能...

    cocos2d添加组件,解决view透明度问题

    xxxxx【Cocos2d游戏开发之七】在cocos2d中添加系统组件,并解决View设置透明会影响View中的其他组件的问题! http://blog.csdn.net/xiaominghimi/article/details/6704898

    Cocos2d游戏开发实战全本

    Cocos2d游戏开发是一个专注于2D游戏开发的开源框架,它支持多种操作系统和编程语言,广泛应用于iOS、Android、Windows等平台的游戏开发。Cocos2d允许开发者快速构建游戏应用,其丰富的功能和灵活的设计让游戏开发变...

    Cocos2d-x 闪电特效

    Cocos2d-x是一款流行的开源游戏开发框架,它基于C++,并利用OpenGL进行图形渲染。在游戏开发中,特效的实现是至关重要的,能够极大地提升游戏的视觉体验和玩家的沉浸感。"Cocos2d-x 闪电特效"正是这样一个专题,它...

    cocos2d游戏开发入门

    本教程将带你踏入Cocos2D游戏开发的大门,通过学习,你将掌握如何利用这个强大的工具创建令人惊叹的2D游戏。 首先,了解Cocos2D的基本概念至关重要。Cocos2D是一个基于OpenGL的2D渲染引擎,它为开发者提供了一套...

    cocos2dx 粒子系统销毁问题1

    在Cocos2d-x游戏中,粒子系统是一种常用的视觉效果工具,用于创建如火、烟、火花等动态特效。然而,粒子系统的销毁问题可能会导致性能下降和内存泄漏,尤其是在需要频繁生成和销毁粒子特效的场景中。本文将深入探讨...

    cocos2d游戏开发基础(一).pdf

    ### cocos2d游戏开发基础知识点概述 #### 一、cocos2d简介 cocos2d是一款专为iOS和跨平台游戏开发设计的开源框架。它不仅能够支持2D游戏的构建,还提供了丰富的功能来简化游戏开发过程。cocos2d的核心优势在于其...

    Cocos Creator 特效包.zip

    Cocos Creator是一款强大的2D游戏开发引擎,以其易用性、高效性和跨平台性受到广大开发者喜爱。本次介绍的"Cocos Creator特效包.zip"则是一个专为Cocos Creator设计的特效资源集合,包含了一系列丰富多样的视觉效果...

    iPhone & iPad cocos2d游戏开发实战完整版

    《iPhone & iPad cocos2d游戏开发实战完整版》是一本专为iOS平台上的游戏开发者编写的实战指南。这本书深入浅出地介绍了如何使用cocos2d框架来创建高性能、交互性强的游戏应用程序。cocos2d是一款强大的开源游戏开发...

    Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    Cocos2d-JS是Cocos2d-x引擎的一个分支,它结合了JavaScript的易用性和C++的高性能,为游戏开发提供了一个高效、便捷的解决方案。 首先,Cocos2d-JS的核心概念包括场景(Scene)、层(Layer)、精灵(Sprite)、动作...

    cocos2dx3.x游戏开发之旅电子版

    《Cocos2d-x 3.x游戏开发之旅》是一本深度探讨Cocos2dx 3.x框架的游戏开发专著,适合对游戏编程有兴趣并有一定基础的开发者。Cocos2dx是一个开源的游戏开发框架,它基于C++,同时支持多种语言,如Lua和JavaScript,...

    iOS cocos2d游戏开发教程

    ### iOS Cocos2d游戏开发教程:从入门到精通 #### 引言 在苹果的iTunes App Store以及伴随而来的移动设备(如iPhone、iPod touch和iPad)的推动下,开发并销售自己的计算机游戏变得前所未有的容易。尽管这并不意味...

    cocos2d游戏开发期末设计

    【cocos2d游戏开发期末设计】 在游戏开发领域,Cocos2d是一个非常流行的开源框架,主要用于构建2D游戏、动态应用以及图形演示。它提供了丰富的功能,包括图形渲染、动画处理、物理引擎集成、触摸事件处理等,使得...

Global site tag (gtag.js) - Google Analytics