2023-05-23
CameraComponent
のfollow
を使うと、よくあるキャラクターに追従する画面スクロールを実現できます。
※ 1.7 以前で使われていたCamera
は非推奨になりました。
まずはマップとなるコンポーネントを作ります。 1500x1500 のサイズで、今いる場所がわかりやすいように適当に背景を描画します。
class Map extends PositionComponent {
Map()
: super(
size: Vector2.all(length),
);
static const double length = 1500;
@override
void render(Canvas canvas) {
super.render(canvas);
const steps = 10;
for (var i = steps; i >= 0; i -= 1) {
canvas.drawRect(
Rect.fromCenter(
center: Offset(width * 0.5, height * 0.5),
width: width / steps * i.toDouble(),
height: height / steps * i.toDouble(),
),
Paint()..color = Color.fromARGB(255, 0, ((200 / steps) * i).toInt(), 0),
);
}
}
}
次にカメラを設定します。
1.9 から world
、camera
がデフォルトで用意されるようになったので、自前で作る必要がなくなりました。
map
と_rect
をworld
にadd
して、follow
でcamerat
が_rect
を追いかけるようにします。
なお、_rect
はキーボードイベントの例で使ったものと同じで、矢印キーで動きます。
final map = Map();
world.add(map);
world.add(_rect);
camera.follow(_rect);
これで、キャラクターに合わせて画面が動きます。
© 2023 tnantoka