2

画像を表示するために、 flameパッケージのスプライトを使用しています。画像に透明度または不透明度を追加しようとしています。

これが私のコードです:

void render(Canvas c) {
    Sprite spriteImg = Sprite('someImg.png');
    rect = Rect.fromLTWH(10, 10, 20, 20);
    spriteImg.renderRect(c, rect);
}

不透明度を追加する方法がわかりません。

4

2 に答える 2

1
class NewComponent extends PositionComponent{
  static final Color _color = Color(0xFFFFFFFF);
  static final Paint _paint = Paint()
    ..color = _color
    ..style = PaintingStyle.fill;

  Sprite? sprite;

  Future<void> onLoad() async {
    sprite = await Sprite.load('image.png');
  }

  @override
  void render(Canvas canvas) {
    super.render(canvas);
    final double colorOpacity = opacity.clamp(0, 1.0);
    _paint.color = _color.withOpacity(colorOpacity);
    sprite?.render(
      canvas,
      size: size,
      overridePaint: _paint,
    );
  }
}

透明度を動的に更新する際の重要事項 _paint.color = ? およびopacity.clamp(0, 1.0)

于 2021-05-20T03:40:51.847 に答える