Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中ParticleSystem组件是一个用于创建粒子效果的工具,可用于实现火花、爆炸、雪花等效果。


目录

一、组件属性

二、组件使用

三、效果演示

四、性能优化


一、组件属性

属性 功能说明
Preview 在编辑器模式下预览粒子,启用后选中粒子时,粒子将自动播放
Play On Load 如果设置为 true 运行时会自动发射粒子
Auto Remove On Finish 粒子播放完毕后自动销毁所在的节点
File Plist 格式的粒子配置文件
Custom 是否自定义粒子属性。开启该属性后可自定义以下部分粒子属性
Sprite Frame 自定义的粒子贴图
Duration 发射器生存时间,单位秒,-1 表示持续发射
Emission Rate 每秒发射的粒子数目
Life 粒子的运行时间及变化范围
Total Particle 粒子最大数量
Start Color 粒子初始颜色
Start Color Var 粒子初始颜色变化范围
End Color 粒子结束颜色
End Color Var 粒子结束颜色变化范围
Angle 粒子角度及变化范围
Start Size 粒子的初始大小及变化范围
End Size 粒子结束时的大小及变化范围
Start Spin 粒子开始自旋角度及变化范围
End Spin 粒子结束自旋角度及变化范围
Source Pos 发射器位置
Pos Var 发射器位置的变化范围。(横向和纵向)
Position Type 粒子位置类型,包括 FREERELATIVEGROUPED 三种
Emitter Mode 发射器类型,包括 GRAVITYRADIUS 两种
Gravity 重力。仅在 Emitter Mode 设为 GRAVITY 时生效
Speed 速度及变化范围。仅在 Emitter Mode 设为 GRAVITY 时生效
Tangential Accel 每个粒子的切向加速度及变化范围,即垂直于重力方向的加速度。仅在 Emitter Mode 设为 GRAVITY 时生效
Radial Accel 粒子径向加速度及变化范围,即平行于重力方向的加速度。仅在 Emitter Mode 设为 GRAVITY 时生效
Rotation Is Dir 每个粒子的旋转是否等于其方向。仅在 Emitter Mode 设为 GRAVITY 时生效
Start Radius 初始半径及变化范围,表示粒子发射时相对发射器的距离。仅在 Emitter Mode 设为 RADIUS 时生效
End Radius 结束半径。仅在 Emitter Mode 设为 RADIUS 时生效
Rotate Per S 粒子每秒围绕起始点的旋转角度及变化范围。仅在 Emitter Mode 设为 RADIUS 时生效
Src Blend Factor 混合显示两张图片时,原图片的取值模式
Dst Blend Factor 混合显示两张图片时,目标图片的取值模式

二、组件使用

首先,在场景中添加一个ParticleSystem组件。在属性检查器中,可以设置各种粒子效果的参数,例如颜色、大小、速度等。如果需要更加复杂的效果,可以通过设置纹理图集、粒子发射的位置和方向等属性来实现。

然后,可以通过编写脚本来动态地控制ParticleSystem组件。首先需要获取ParticleSystem组件的引用,可以通过以下代码来实现:

let particleSystem = this.node.getComponent(cc.ParticleSystem);

其中this.node指代当前场景中包含ParticleSystem组件的节点,cc.ParticleSystem则是ParticleSystem组件的类名。

接下来,可以通过调用ParticleSystem组件的方法来改变粒子效果的状态。例如,通过调用particleSystem.resetSystem()方法可以重新启动粒子系统,而通过particleSystem.stopSystem()方法则可以停止粒子系统。此外,还可以通过设置各种属性来改变粒子效果的行为,例如通过particleSystem.setScale(0.5)方法可以将粒子系统的大小减半。

最后,可以通过监听ParticleSystem组件的事件来响应不同的状态变化。例如,可以通过监听"stop"事件来在粒子系统停止时执行自定义的逻辑,例如播放音效或者移除节点等。可以通过以下代码来实现:

particleSystem.node.on(cc.ParticleSystem.EventType.STOP, function () {console.log("ParticleSystem stopped");
});

其中cc.ParticleSystem.EventType.STOP表示停止事件的类型,function () {}则是事件响应函数。

三、效果演示

四、性能优化

ParticleSystem组件是基于GPU加速的,因此可以支持大量的粒子运动,而不影响游戏性能。为了进一步优化性能,可以通过调整以下参数:

  • 最大粒子数:限制粒子的数量,避免对游戏性能产生太大影响。
  • 纹理过滤模式:选择合适的纹理过滤模式以提高渲染效率。

总之,ParticleSystem组件是Cocos Creator中非常实用的工具,可以帮助开发者轻松地创建各种炫酷的效果,并且通过性能优化可以保证游戏的流畅运行。

【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件相关推荐

  1. 【CocosCreator入门】CocosCreator组件 | Mask(遮罩)组件

      Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Mask组件可用于创建如圆形.矩形和任意形状的遮罩效果,以限制节点显示的范围.这对于创建具有复杂布局的UI元素非常有 ...

  2. 【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略

    前言 在游戏开发时,我们为了让角色更加真实立体,我们会使用 3D 模型代替​ 2D 的龙骨或者 Spine 动画. 比如我们的选择角色的界面,如果我们的角色是 3D 模型,界面的 UI (例如名字.背 ...

  3. Bootstrap入门(二十一)组件15:警告框

    Bootstrap入门(二十一)组件15:警告框 通过这些简单.灵活的进度条,为当前工作流程或动作提供实时反馈. 进度条组件使用了 CSS3 的 transition 和 animation 属性来完 ...

  4. react基础入门,类组件和函数组件,state,props,refs

    React入门 目录 React入门 React入门 Vue跟React的异同点 相同点 不同点 Vue小建议 1. 不需要响应式的数据应该怎么处理? 2. Key 3. 数据结构 React 教程 ...

  5. WPF 项目开发入门(五)ListView列表组件 与 Expander组件

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  6. Vue入门八、非父子组件间通讯

    通过Bus总线机制实施非父子组件通讯 1.创建一个空实例(Bus中央事件总线也可以叫中间组件) 2.利用$emit $on 触发和监听事件实现非父子组件的通信 组件之间使用this.$bus.$on传 ...

  7. CocosCreator入门

    1.关于Cocos Creator Cocos Creator 是什么? 它是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及能让你更快速开发游戏所需要 ...

  8. VUE 入门及应用 ( 五 ) ElementUI 组件

    7.组件框架 7.0.Element UI js -> jquery ->jqueryui /easyUI / bootstrap UI js -> vue -> elemen ...

  9. Vue入门(五)之组件

    组件 1.组件的概念 2.组件的使用(定义,注册,和使用) 2.1.定义组件 2.2.注册组件 2.3.使用组件 2.4.组件编写方式与 Vue 实例的区别: 3.组件嵌套 4.组件的属性 4.1.使 ...

  10. 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )

    文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...

最新文章

  1. 程序员看过来!JS、Java、C 依然强势,Go、Kotlin、Python 潜力股,2020 开发者生态系统报告
  2. SpringCloud教程 | 第四篇:断路器(Hystrix)
  3. linux gradle仓库位置,如何在Android Studio中使用Gradle发布项目至Jcenter仓库
  4. android app攻击与防范论文,基于Android平台的应用程序安全保护研究与应用
  5. 平衡二叉树【学习笔记】
  6. 计算机代数与密码学,代数曲线与密码学
  7. 计算机桌面广告弹窗,电脑乱弹广告怎么办_怎么禁止桌面弹出广告
  8. 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
  9. 淘宝/天猫上传图片到淘宝 API 返回值说明
  10. java 监测粘贴板事件_Java 监视系统剪贴板
  11. 公众平台--扫描微信二维码,关注后自动登录
  12. 项目管理、Bug管理软件工具:禅道,BugFree,Redmine
  13. 某云盘下载工具(IDM,Aria2)速度测试
  14. java 简单框架_最简单的Java框架
  15. 【C语言】给出三角形三边长,求三角形面积
  16. 2022-2028全球与中国锂电池隔膜市场现状及未来发展趋势
  17. 第三代测序成本偏高是什么原因导致的? 是看了这道题下面的邹捷萌回答:现在基因测序的瓶颈主要在哪里?精度?速度? 在精确度方面第三代测序已经很高了,但目前国内生物实验室的测序还是以二代为主,推测成本可能
  18. luogu1042 乒乓球(NOIP2003普及组第1题)
  19. 基于Acgis从全球.nc数据中提取中国地图并计算地区CO2值
  20. 风影总结NHibernate4 NHibernateBase帮助类详解

热门文章

  1. 相当不错的知识图谱PPT和讲座(北大教授讲座)
  2. Android 的反编译 (附愤怒的小鸟源码下载)
  3. 基于云原生技术的融合通信是如何实现的?
  4. Sweet Snippet 之 最短增广路径算法
  5. android开发蓝牙传输图片,如何发送/接收文本和图片通过蓝牙android到另一个android手机...
  6. android 3d魔方 魔方复原 三维魔方 源码下载
  7. CAD绘图中的图层设置
  8. SegmentFault 思否社区被收购了!
  9. elasticsearch 索引创建脚本
  10. 51单片机学习笔记-14 ADDA