为什么 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 版本。"
我目前正在使用 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 版本。"