Skip to content

Conversation

zhefengzhang
Copy link
Contributor

Copy link

github-actions bot commented Sep 24, 2025

Code Size Check Report

Wechat (WASM) Before After Diff
2D Empty (legacy pipeline) 1009805 bytes 1009805 bytes ✅ 0 bytes
2D All (legacy pipeline) 2675364 bytes 2675389 bytes ⚠️ +25 bytes
2D All (new pipeline) 2767100 bytes 2767125 bytes ⚠️ +25 bytes
(2D + 3D) All 10024070 bytes 10024095 bytes ⚠️ +25 bytes
Web (WASM + ASMJS) Before After Diff
(2D + 3D) All 16843132 bytes 16843157 bytes ⚠️ +25 bytes

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -70279,9 +70279,14 @@
         }
         export class _cocos_particle_2d_particle_simulator_2d__Particle {
             pos: math.Vec2;
             startPos: math.Vec2;
-            color: math.Color;
+            color: {
+                r: number;
+                g: number;
+                b: number;
+                a: number;
+            };
             deltaColor: {
                 r: number;
                 g: number;
                 b: number;

public pos = new Vec2(0, 0);
public startPos = new Vec2(0, 0);
public color = new Color(0, 0, 0, 255);
public color = { r: 0, g: 0, b: 0, a: 255 };
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

因为 Color 类型对象使用 Uint8ClampedArray 类型数组存储 rgba 数值,此类型数组的元素值添加时会对数值进行四舍五入。
而在 particle-simulator-2d.ts 中计算每帧粒子的颜色数据需要 rgba 值与 dt 浮点值相乘,最终得到的 rgba 浮点值赋值给 color 的 rgba 值时会被四舍五入,导致最终显示结果不符合预期。

Because Color type objects use an array of type Uint8ClampedArray to store rgba values, element values of this array type are rounded when added.
However, calculating the color data of each frame particle in particle-simulator-2d.ts requires multiplying the rgba value by the dt floating point value. The resulting rgba floating point value assigned to the rgba value of color will be rounded, resulting in the final display result not meeting expectations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant