spy*_*don 10
如果您始终希望将其设置为正方形,则可以使用 aFixedResolutionViewport
并将其设置为最小边。
使用相机组件
class MyGame extends FlameGame {
Future<void> onLoad() async {
double maxSide = min(size.x, size.y);
final cameraComponent = CameraComponent.withFixedResolution(
world: myWorldComponent,
width: maxSide,
height: maxSide,
);
...
}
}
Run Code Online (Sandbox Code Playgroud)
或者
class MyGame extends FlameGame {
Future<void> onLoad() async {
final cameraComponent = CameraComponent(
world: myWorldComponent,
viewport: FixedAspectRatioViewport(aspectRatio: 1.0),
);
...
}
}
Run Code Online (Sandbox Code Playgroud)
用旧相机
class MyGame extends FlameGame {
Future<void> onLoad() async {
double maxSide = min(size.x, size.y);
camera.viewport = FixedResolutionViewport(Vector2.all(maxSide));
}
}
Run Code Online (Sandbox Code Playgroud)
如果您希望游戏(视口)size
位于另一个组件内,您可以添加mixin 并以相同的方式HasGameRef
使用游戏的变量:size
class MyComponent extends Component with HasGameRef {
MyComponent() : super(anchor: Anchor.center);
Future<void> onLoad() async {
final gameSize = gameRef.size;
// To add a position component in the center of the screen for example:
// (when the camera isn't moved)
position = gameSize/2;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想要其他尺寸,我建议您查看一下game.camera
,game.camera.viewport
它也提供了一些其他选项。
归档时间: |
|
查看次数: |
4998 次 |
最近记录: |