@flare-engine/particles

中文文档
0.4.12发布于 2026/11/13Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2236

粒子发射器、池、即时模具 Skia 渲染

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 缩放形状
  4. 绘制成图示批次
  5. 许可证

@flare-engine/文章

预分配出颗粒池+放出物——颗粒被再生而不是再分配,因此一个稳态放出物不分配出每个颗粒. 目标:60英尺处有200至500个活颗粒. 这个软件包拥有粒子数据和生命周期;渲染通过宿主的即时-mode Skia地层(PictureRecorder)来进行.

每个框架的计量综合成本公布于 基准,随着捕捉日期和跑到跑在每一行。 分配是用仪器进行的,而不是假设:抽取路径的对接套件读取 ParticlePool.created 每个框架和 bun run check:perf 如果一个稳定状态的发射器 给工厂打了一次电话, 建造失败了。 准确的整数在同一文档中公布.

安装

bun add @flare-engine/particles

使用量

import { ParticleEmitter } from '@flare-engine/particles';

const emitter = new ParticleEmitter({
  rate: 30, lifetime: 1.2,
  speed: 80, speedMax: 160,
  direction: -Math.PI / 2, spread: Math.PI / 4,
  startColor: { r: 1, g: 1, b: 1, a: 1 }, endColor: { r: 1, g: 1, b: 1, a: 1 },
  startAlpha: 1, endAlpha: 0, // opacity fades via start/endAlpha — Color.a is not read
  startSize: 4, endSize: 0,
  gravityY: 98,
});

// gravity is part of config; update takes only dt
emitter.update(1 / 60);

缩放形状

默认每个颗粒的产卵在发射者身上 x编号 :yA级 shape 样本 产卵量 转而.. point (默认), circle, (中文(简体) ), ring, (中文(简体) ), rect,或 cone数字 :

import { ParticleEmitter } from '@flare-engine/particles';

// An explosion: spawn on a ring, travel outward from the centre.
const blast = new ParticleEmitter({
  rate: 0, lifetime: 0.6,
  speed: 120, speedMax: 200,
  direction: 0, spread: 0.15,
  shape: { kind: 'ring', radius: 24, radial: true },
});
blast.x = 160;
blast.y = 120;
blast.burst(48);

形状控制位置; direction 财务报告和审定财务报表 spread 仍然控制着速度. 他们相当的作曲 而不是竞争。 外向正常的形状.. circle, (中文(简体) ), ring, (中文(简体) ), cone - 能够手 以速度到达它 radial: true,这就是一个环 漂移粒子与 一个爆炸。 没有它, 戒指产出 在戒指上,一切仍然飞走 direction。 。 。 .

形状职位页:1
{ kind: 'point' }发射源默认 不绘制随机值,所以没有形状的放出器会在形状存在之前产生一个相同的序列.
{ kind: 'circle', radius, radial? }光碟内部的制服制服 按地区 射线术语是 sqrt- 重量级,所以粒子不会聚集在中心.
{ kind: 'ring', radius, thickness?, radial? }在戒指上, thickness 宽thickness 默认为 0(一光环),统一分布于整个乐队.
{ kind: 'rect', width, height }矩形内制服以发射器为中心,而不是以一角为锚. 没有外出正常,所以 radial 不适用.
{ kind: 'cone', radius, angle }半角楔形制服 angle向着这里 direction一、结 论 产卵点 - 与 spread风扇的速度从一个点.

sampleEmitterShape(shape, rand, out, direction?) 如果您想要放置其它东西,则导出 而不是颗粒。 写到一个打电话者拥有的 ShapeSample (单位:千美元)createShapeSample()和分配 没什么,所以它是安全的每颗粒子在一个稳定的状态循环。 每个形状绘制一个固定的数目 来自 rand,这就是保持种子发射器 准确的重放.

绘制成图示批次

drawParticles 将每个活粒子排入您拥有的批次, 因此粒子会随同冲出 而不是强迫第二次通过:

import { drawParticles, ParticleEmitter } from '@flare-engine/particles';
import type { ParticleBatchLike, ParticleFrameLike } from '@flare-engine/particles';

declare const emitter: ParticleEmitter;
declare const batch: ParticleBatchLike; // a @flare-engine/render SpriteBatch satisfies this
declare const atlasImage: unknown;
declare const frame: ParticleFrameLike; // e.g. a SpriteFrame from @flare-engine/assets

// each frame, before the batch flushes
drawParticles(emitter.pool, batch, atlasImage, frame);

批量和帧已打入 结构,所以这个包 仍然取决于什么,但 @flare-engine/core 财务报告和审定财务报表 @flare-engine/math 并且没有制造器可使用。 真实的 SpriteBatch 满意 ParticleBatchLike - 运行时间测试证实 @flare-engine/engine, (中文(简体) ), 不只是假设.

循环不分配每颗粒子,跳过插出大小或α的粒子 达到零,而不是支付 一个无形的抽取呼叫.

不应用每个粒子的颜色 . 池内插 startR/G/B → endR/G/B,但是一个批 保留效果 参考文献 直到它冲出,所以一个单一的可重复使用的效果对象会给出每个 粒子 最后一个颜色 —— 每个相框一个对象就是这个分配 软件包的存在是为了避免。 阿尔法 实值 适用,因为 drawRaw 把它当作数字。 如果你需要的话 今天的每颗粒子颜色, 写回循环 pool.particles 并承担成本.

见 API 规格。 。 。 .

许可证

阿帕奇 - 2.0

版本与发布记录

@flare-engine/particles 共发布 17 个版本,首次发布于 2026/06/10;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.12latest2026/11/133 天前
0.4.112026/11/123 天前
0.4.102026/11/087 天前
0.4.82026/11/0610 天前
0.4.72026/11/0411 天前
0.4.62026/10/3115 天前

关于 @flare-engine/particles 的常见问题

@flare-engine/particles 是什么?

粒子发射器、池、即时模具 Skia 渲染

如何安装 @flare-engine/particles?

在项目目录运行 npm install @flare-engine/particles,或使用 pnpm add / yarn add / bun add。

@flare-engine/particles 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flare-engine/particles 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@flare-engine/particles 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@flare-engine/particles 可以商用吗?

@flare-engine/particles 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@flare-engine/particles 的下载量有多少?

根据 npm 官方下载统计,@flare-engine/particles 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,236 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flare-engine/particles 还在维护吗?

最新版本 0.4.12 发布于 2026/11/13(3 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/06/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。