如何给 Sprite 重新着色
How to recolour a Sprite
我正在尝试弄清楚如何使用 Flutter 的 Flame 引擎重新着色或 'tint' Sprite。我已尝试按照此处所述添加或覆盖 Paint 对象:.
使用下面的代码,我尝试使用不同于白色的颜色更改 Paint 对象。 alpha 确实改变了,但我的 Sprite 图像保持白色。我的源图像是一个白色的 png。
void render(Canvas c) {
Sprite spriteImg = Sprite('someImg.png');
rect = Rect.fromLTWH(10, 10, 20, 20);
Paint redPaint = Paint()..color = Colors.red.withOpacity(0.5);
spriteImg.renderRect(c, rect, overridePaint: redPaint);
}
Flame 引擎必须有办法为我没有看到或使用错误的 Sprites 着色,对吗?
您可以为此使用 ColorEffect
:
yourSpriteComponent
..add(
ColorEffect(
Colors.red,
const Offset(
0.0,
0.5,
), // Means, applies from 0% to 50% of the color
EffectController(
duration: 1.5,
),
),
);
我正在尝试弄清楚如何使用 Flutter 的 Flame 引擎重新着色或 'tint' Sprite。我已尝试按照此处所述添加或覆盖 Paint 对象:
使用下面的代码,我尝试使用不同于白色的颜色更改 Paint 对象。 alpha 确实改变了,但我的 Sprite 图像保持白色。我的源图像是一个白色的 png。
void render(Canvas c) {
Sprite spriteImg = Sprite('someImg.png');
rect = Rect.fromLTWH(10, 10, 20, 20);
Paint redPaint = Paint()..color = Colors.red.withOpacity(0.5);
spriteImg.renderRect(c, rect, overridePaint: redPaint);
}
Flame 引擎必须有办法为我没有看到或使用错误的 Sprites 着色,对吗?
您可以为此使用 ColorEffect
:
yourSpriteComponent
..add(
ColorEffect(
Colors.red,
const Offset(
0.0,
0.5,
), // Means, applies from 0% to 50% of the color
EffectController(
duration: 1.5,
),
),
);