update 更新粒子的运动
update
类型: MethodDeclaration
所属类: ParticleElement
定义位置: animation.ts
描述
更新粒子的运动
参数 deltaTime
: 增量时间(毫秒)
返回值:返回false表示粒子可以被回收
参数
参数名 | 类型 | 描述 | 默认值 |
---|---|---|---|
deltaTime | number | - | - |
返回值
类型: boolean
返回false表示粒子可以被回收
源代码
位置: 第 2081 行
public update(deltaTime: number): boolean {
// 计算当前帧新的粒子位置
this.elapsed += deltaTime
this.scaleSpeed += this.scaleAccel * deltaTime
this.scaleFactor += this.scaleSpeed * deltaTime
this.rotationSpeed += this.rotationAccel * deltaTime
this.rotationAngle += this.rotationSpeed * deltaTime
this.movementSpeedX += this.movementAccelX * deltaTime
this.movementSpeedY += this.movementAccelY * deltaTime
this.anchorX += this.anchorSpeedX * deltaTime
this.anchorY += this.anchorSpeedY * deltaTime
this.x += this.movementSpeedX * deltaTime
this.y += this.movementSpeedY * deltaTime
// 计算水平旋转
this.hRotationExpansionSpeed += this.hRotationExpansionAccel * deltaTime
this.hRotationRadius += this.hRotationExpansionSpeed * deltaTime
this.hRotationAngularSpeed += this.hRotationAngularAccel * deltaTime
this.hRotationAngle += this.hRotationAngularSpeed * deltaTime
const hRotationOffset = this.hRotationRadius * Math.cos(this.hRotationAngle)
const hRotationOffsetX = hRotationOffset * Math.cos(this.globalAngle)
const hRotationOffsetY = hRotationOffset * Math.sin(this.globalAngle)
this.x += hRotationOffsetX - this.hRotationOffsetX
this.y += hRotationOffsetY - this.hRotationOffsetY
this.hRotationOffsetX = hRotationOffsetX
this.hRotationOffsetY = hRotationOffsetY
// 计算精灵帧
switch (this.spriteMode) {
case 'random':
break
case 'animation':
if (this.spriteFrame < this.spriteCount - 1 &&
(this.spriteElapsed += deltaTime) >= this.spriteInterval) {
this.spriteElapsed -= this.spriteInterval
this.spriteFrame++
this.updateSpriteFrame()
}
break
case 'animation-loop':
if ((this.spriteElapsed += deltaTime) >= this.spriteInterval) {
this.spriteElapsed -= this.spriteInterval
this.spriteFrame = (this.spriteFrame + 1) % this.spriteCount
this.updateSpriteFrame()
}
break
}
// 更新颜色
this.updateColor()
// 后期处理
return this.postProcessing()
}
文档生成时间:2025/7/7 12:07:06