2023-05-01
ゲーム内の要素はComponent
を継承したクラスで表現されます。
四角形を描画するにはRectangleComponent
を使います。
(Component
の子のPositionComponent
の子です)
classDiagram Component <|-- PositionComponent PositionComponent <|-- RectangleComponent
PositionComponent
は多くの要素のベースになるもので、
画面上に描画するのに必要な属性を持っています。
属性 | 概要 |
---|---|
position | 座標 |
size | 大きさ |
scale | スケール |
angle | 回転角度 |
anchor | 描画の基準位置。デフォルトは左上(Anchor.topLeft ) |
RectangleComponent
はこれらに加えてpaint
(デフォルトは白)を指定することで、任意の四角形を描画することができます。
RectangleComponent
を使ってみます。
FlameGame
を継承したクラスのonLoad
でadd
しています。
import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame/palette.dart';
class RectGame extends FlameGame {
@override
Future<void> onLoad() async {
super.onLoad();
await add(
RectangleComponent(
position: Vector2(size.x * 0.5, size.y * 0.5),
size: Vector2.all(size.x * 0.2),
angle: radians(45),
anchor: Anchor.center,
paint: BasicPalette.gray.paint(),
),
);
}
}
これでグレーの四角形が 45 度回転した状態で画面中央に描画されます。
© 2023 tnantoka