egret-docs-master/extension/particle/ParticleExtensions/README.md

54 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2024-06-19 13:32:32 +08:00
## 概述
ParticleSystem 是支持开发者自定义扩展的,开发者可以根据自己的业务需求实现自定义粒子系统扩展。
---
## 扩展流程
创建自己的粒子类,继承自 `Particle`,粒子类中定义了扩展的粒子库粒子属性。创建自己的粒子库,继承自 `ParticleSystem`,粒子库重写 `initParticle` 方法和 `advanceParticle` 方法。其中 `initParticle` 方法用于初始化粒子属性,`advanceParticle` 用于每个时间间隔粒子的运动。
## 需要重写的方法
### initParticle
``` typescript
/**
* @param particle {particle:particle.Particle} 粒子对象
*/
public initParticle(particle:particle.Particle):void {
//初始化粒子属性
}
```
### advanceParticle
``` typescript
/**
* @param particle {particle:particle.Particle} 粒子对象
* @param dt {number} 间隔时间,单位毫秒
*/
public advanceParticle(particle:particle.Particle, dt:number):void {
//粒子运动变化
}
```
## 注意事项
自定义扩展时,`initParticle` 方法和 `advanceParticle` 方法的参数类型仍然是 `Particle`,可以通过强制类型转换实现业务需求。
``` typescript
var locParticle:GravityParticle = <GravityParticle>particle;
```