Flutter Flame:适当的视口以匹配屏幕尺寸
Flutter Flame: proper Viewport to match the screen size
如何找出屏幕尺寸并根据屏幕分辨率放置我的游戏物品?我想 运行 在网络客户端上玩我的游戏。
我想调整我的红色游戏组件的大小,使其适合屏幕并居中。
LibGdx 对这个概念有一些好处 java class:Link
如果您总是希望它是正方形,您可以使用 FixedResolutionViewport
并将其设置为最小边:
class MyGame extends FlameGame {
Future<void> onLoad() async {
double maxSide = min(size.x, size.y);
camera.viewport = FixedResolutionViewport(Vector2.all(maxSide));
}
}
如果您想要游戏的(视口)size
在另一个组件中,您可以添加 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;
}
}
如果您想要其他尺寸,我建议您查看 game.camera
和 game.camera.viewport
,它们也提供了一些其他选项。
如何找出屏幕尺寸并根据屏幕分辨率放置我的游戏物品?我想 运行 在网络客户端上玩我的游戏。
我想调整我的红色游戏组件的大小,使其适合屏幕并居中。
LibGdx 对这个概念有一些好处 java class:Link
如果您总是希望它是正方形,您可以使用 FixedResolutionViewport
并将其设置为最小边:
class MyGame extends FlameGame {
Future<void> onLoad() async {
double maxSide = min(size.x, size.y);
camera.viewport = FixedResolutionViewport(Vector2.all(maxSide));
}
}
如果您想要游戏的(视口)size
在另一个组件中,您可以添加 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;
}
}
如果您想要其他尺寸,我建议您查看 game.camera
和 game.camera.viewport
,它们也提供了一些其他选项。