【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件
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 | 粒子位置类型,包括 FREE、RELATIVE、GROUPED 三种 |
Emitter Mode | 发射器类型,包括 GRAVITY、RADIUS 两种 |
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 (粒子)组件相关推荐
- 【CocosCreator入门】CocosCreator组件 | Mask(遮罩)组件
Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Mask组件可用于创建如圆形.矩形和任意形状的遮罩效果,以限制节点显示的范围.这对于创建具有复杂布局的UI元素非常有 ...
- 【CocosCreator 3.x】使用 UIMeshRenderer 组件实现 3D 渲染在 UI 上 => 攻略
前言 在游戏开发时,我们为了让角色更加真实立体,我们会使用 3D 模型代替 2D 的龙骨或者 Spine 动画. 比如我们的选择角色的界面,如果我们的角色是 3D 模型,界面的 UI (例如名字.背 ...
- Bootstrap入门(二十一)组件15:警告框
Bootstrap入门(二十一)组件15:警告框 通过这些简单.灵活的进度条,为当前工作流程或动作提供实时反馈. 进度条组件使用了 CSS3 的 transition 和 animation 属性来完 ...
- react基础入门,类组件和函数组件,state,props,refs
React入门 目录 React入门 React入门 Vue跟React的异同点 相同点 不同点 Vue小建议 1. 不需要响应式的数据应该怎么处理? 2. Key 3. 数据结构 React 教程 ...
- WPF 项目开发入门(五)ListView列表组件 与 Expander组件
WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...
- Vue入门八、非父子组件间通讯
通过Bus总线机制实施非父子组件通讯 1.创建一个空实例(Bus中央事件总线也可以叫中间组件) 2.利用$emit $on 触发和监听事件实现非父子组件的通信 组件之间使用this.$bus.$on传 ...
- CocosCreator入门
1.关于Cocos Creator Cocos Creator 是什么? 它是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及能让你更快速开发游戏所需要 ...
- VUE 入门及应用 ( 五 ) ElementUI 组件
7.组件框架 7.0.Element UI js -> jquery ->jqueryui /easyUI / bootstrap UI js -> vue -> elemen ...
- Vue入门(五)之组件
组件 1.组件的概念 2.组件的使用(定义,注册,和使用) 2.1.定义组件 2.2.注册组件 2.3.使用组件 2.4.组件编写方式与 Vue 实例的区别: 3.组件嵌套 4.组件的属性 4.1.使 ...
- 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )
文章目录 一.FractionallySizedBox 组件 二.Stack 布局组件 三.Positioned 组件 四. 完整代码示例 五. 相关资源 一.FractionallySizedBox ...
最新文章
- 程序员看过来!JS、Java、C 依然强势,Go、Kotlin、Python 潜力股,2020 开发者生态系统报告
- SpringCloud教程 | 第四篇:断路器(Hystrix)
- linux gradle仓库位置,如何在Android Studio中使用Gradle发布项目至Jcenter仓库
- android app攻击与防范论文,基于Android平台的应用程序安全保护研究与应用
- 平衡二叉树【学习笔记】
- 计算机代数与密码学,代数曲线与密码学
- 计算机桌面广告弹窗,电脑乱弹广告怎么办_怎么禁止桌面弹出广告
- 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
- 淘宝/天猫上传图片到淘宝 API 返回值说明
- java 监测粘贴板事件_Java 监视系统剪贴板
- 公众平台--扫描微信二维码,关注后自动登录
- 项目管理、Bug管理软件工具:禅道,BugFree,Redmine
- 某云盘下载工具(IDM,Aria2)速度测试
- java 简单框架_最简单的Java框架
- 【C语言】给出三角形三边长,求三角形面积
- 2022-2028全球与中国锂电池隔膜市场现状及未来发展趋势
- 第三代测序成本偏高是什么原因导致的? 是看了这道题下面的邹捷萌回答:现在基因测序的瓶颈主要在哪里?精度?速度? 在精确度方面第三代测序已经很高了,但目前国内生物实验室的测序还是以二代为主,推测成本可能
- luogu1042 乒乓球(NOIP2003普及组第1题)
- 基于Acgis从全球.nc数据中提取中国地图并计算地区CO2值
- 风影总结NHibernate4 NHibernateBase帮助类详解