Flutter / Flame游戏首页或主视图不一致

问题描述

我有一个主页视图,在此主页视图中,我放置了主页图片,开始和设置按钮。

当我在第一个窗口中运行游戏时,首页图片显示较小,按钮未显示

但是,如果我在模拟器中单击重新启动,则一切看起来都正常且大小合适。在真实的android设备首页中,图片总是较小,并且按钮未显示

Util flameUtil = Util();
await flameUtil.fullScreen();
await flameUtil.setLandscapeLeftOnly();

我只想只留风景。

void resize(Size size) {
screenSize = size;
tileSize = screenSize.width / 9;}

这是我的调整大小方法

titleRect = Rect.fromLTWH(0,game.tileSize*10,game.tileSize*5);

titleSprite = Sprite('uipics/homepage.png');

我的主页图片

rect = Rect.fromLTWH(game.tileSize*5,(game.screenSize.height) - (game.tileSize*1.5),game.tileSize*0.9,game.tileSize*0.8);


sprite = Sprite('uipics/playbutton.png');

我的开始(播放)按钮。

rect = Rect.fromLTWH(game.tileSize*7.2,game.screenSize.height - (game.tileSize *1.5),game.tileSize*0.8);

我的设置按钮。

正如我提到的,如果我在IDE(vsc)中单击重新启动,一切都会自动修复,并且我可以毫无问题地玩游戏。但是在第一次运行时以及在android设备中都是有问题的。我曾尝试更改尺寸和位置,但从未成功。谢谢您的提前帮助。

解决方法

您必须先运行await flameUtil.fullScreen();setLandscapeLeftOnly();,然后再执行runApp,如下所示:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SharedPreferences storage = await SharedPreferences.getInstance();
  await Flame.util.fullScreen(); 
  await Flame.util.setLandscapeLeftOnly();
  TheGame game = TheGame(storage); 
  runApp(game.widget);
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...