为什么 sprite.tintBottomLeft 在移相器 3 中返回错误的颜色?

Why is sprite.tintBottomLeft returning the wrong color in phaser 3?

我目前正在使用 Phaser 3 进行一个项目。 我试图在修改之前保存精灵(下面代码部分中的“对象”)当前颜色。 我将 tintBottomLeft、tintBottomRight、tintTopLeft 和 tintTopRigh 的值保存到其他 4 个变量中。

    object.on('pointerover', function() {

        console.log(object);
        console.log("_tintBL", object._tintBL);

        previousTintBL = object.tintBottomLeft;
        previousTintBR = object.tintBottomRight;
        previousTintTL = object.tintTopLeft;
        previousTintTR = object.tintTopRight;

        object.setTint(0xff00ff);
    });

    object.on('pointerout', function() {
        object.clearTint();

        object.setTint(previousTintTL, previousTintTR, previousTintBL, previousTintBR);

        previousTintBL = object.tintBottomLeft;
        previousTintBR = object.tintBottomRight;
        previousTintTL = object.tintTopLeft;
        previousTintTR = object.tintTopRight;
    });

问题是 sprite 当前颜色为 16711680(使用 console.log 在对象中打印,图片链接)

但是当我单独访问变量 _tintBL 时,颜色现在是 255,我真的不明白为什么会这样。

有什么帮助吗?

console.log screenchot

好的,我在另一个论坛上得到了答案。所以这是答案:

" 因为在 3.50 版本之前,色调通常存储在 BGR 中而不是 RGB 中。https://github.com/photonstorm/phaser/blob/v3.24.1/src/gameobjects/components/Tint.js#L14

鉴于它在 setter 中自动应用,但在 getter 中没有反转,该值与设置值不同。

要么自己转换成 RGB,要么更新到不再是问题的 3.50 beta 版本。"