HarmonyOS 粒子特效实战:emitter.size 是双刃剑:粒子精确定位 [0,0] 与条带随机出生(HarmonyOS)

emitter.size 是双刃剑:粒子精确定位 0,0 与条带随机出生(HarmonyOS)

现象: 马赛克 256 块定点拼合出现"间隙重叠 + 边缘不齐 + 倾斜感",且每次复位/切档重建后错位图案都不同;反过来,另一些效果(白点消散)又需要粒子"沿一条线随机出生"------同一个参数,用法完全相反。

原因: emitter.size 是发射区域宽高(particle.d.ts :796-800),粒子在区域内均匀随机 出生------size:1,1 即每块 ±0.5vp 随机偏移;它既是精确定位错误的源头,也是条带效果的正牌机制。

解决: 精确拼合改 0,0 点发射 + 瓦片尺寸精确等于格子;条带效果正向设"线宽 × 薄条带";铁证判别法是"重建结果每次完全一致"。

暗面:随机出生区毁掉精确定位(坑10)

想让 256 块严丝合缝,写了 emitter.size: [1, 1]------1×1vp 已经够小了吧?结果块界处随机错缝/叠。因为 emitter 的 size 是发射区域:粒子在 宽, 高 区域内均匀随机出生,1,1 区域意味着出生点 ±0.5vp 随机偏移。

旧版块间 1vp 明缝一直在掩盖这个随机性;无缝化修复把缝消掉后,随机错位彻底暴露------连环坑:修掉 A(明缝)暴露 B(随机错位)。

解法:

typescript 复制代码
emitter: {
  size: [0, 0],        // 点发射,出生位置确定
  position: [x, y],    // 块的格位左上角
  // 瓦片尺寸精确等于格子 [tw, th],错位即露缝便于辨别
}

铁证:修复后重建结果每次完全一致(有随机时每次都不同);错位与素材横竖拍无关(对照排除)。

亮面:条带发射器的正确姿势

同一机制,用在"沿一条线撒粒子"的效果上就是正解。白点消散卡:192 批 × 每批 2 个发射器,每个发射器 size 设「线宽 × 薄条带」+ position = 条带左上角 → 一条发射器多颗粒子沿整条线随机出生。

配套参数:

  • 发射持续时间 = count ÷ emitRate:emitRate 取 max(N×3, 20) → 333ms 连喷,前沿带尾
  • lifetime + lifetimeRange(since 12):每颗寿命在 lifetime−range, lifetime 随机,避免"整整齐齐同时死"

判别法速查

症状 诊断
拼合/排版错位,每次重建都不同 size 随机出生区在作怪 → 改 0,0 点发射
效果太"整齐",粒子挤在一点 正向设 size 条带 → 沿线/沿区随机出生

标签

#HarmonyOS #ArkUI #Particle #emitter #粒子特效 #马赛克

📹 效果演示 :本文的「白点消散/马赛克拼合」动态效果实录会发在抖音------号 581821159(天行健之初九),截图看不出的粒子细节,视频一眼就懂。

懿路向前 · AI辅助整理 · 2026-10-12

相关推荐
马剑威(威哥爱编程)1 小时前
【共创稿事节】HarmonyOS 7 Agent 开发实战 04:云端 RAG 搭企业私有知识库问答
人工智能·华为·harmonyos
贾伟康2 小时前
【晨迹相机|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明
harmonyos·arkts·appgallery·发布审核·上架复查
特立独行的猫a3 小时前
用仓颉写桌面应用:从 npx 建工程到串口实时示波器
开源·harmonyos·tauri·仓颉·cj-tarui
m0_685535084 小时前
光学设计自学
华为·光学·光学设计·光学工程·镜头设计
懿路向前4 小时前
HarmonyOS 粒子特效实战:马赛克切块提速 17.6×~38×:desiredRegion 重复读盘与一次解码管线(HarmonyOS)
华为·harmonyos
垆边人似月.5 小时前
华为题:LRU 缓存
缓存·华为
天府云创6 小时前
Agentic开发时代到来——鸿蒙PC三大原生开发工具公测
华为·操作系统·harmonyos·鸿蒙系统·cli·deveco·agentic
程序猿追6 小时前
Fleks 鸿蒙适配:从八个小球看实体和组件的变化
华为·harmonyos
Sunny_GMF6 小时前
Markdown 导出 HTML 实战:2.6MB 编辑器快照如何瘦身 71%(DOM 净化 + CSSOM 运行时裁剪)
编辑器·html·ai编程·harmonyos