我有一个世界和一个玩家。我的相机跟随玩家。玩家无法走出我创建的世界边界,但相机可以看到世界边界后面的内容(黑屏)。
我尝试添加文档中提到的 CameraComponent.setBounds(...) 。 setBounds() 函数请求 Shape? 类型的边界。我必须在这里传递什么?在火焰更新之前,我在camera.followComponent中使用了“worldBounds: Rect.fromLTRB(0, 0, _background.size.x, _background.size.y)”,但它已被弃用
这尚未在新相机系统中完全实现(请参阅https://github.com/flame-engine/flame/issues/2601)。
目前唯一的解决方法是计算比玩家可以移动的范围更小的边界,例如,如果您的世界基于 (0, 0):
import 'package:flame/experimental.dart'; // Gives you the Rectangle
...
class MyGame extends FlameGame {
@override
Future<void> onLoad() async {
final halfViewportSize = camera.viewport.size / 2;
final worldSize = 1500; // Size from the center in each direction.
cameraComponent.setBounds(
Rectangle.fromCenter(
center: Vector2.zero(),
size: Vector2.all(worldSize) - halfViewportSize,
),
);
}
}