【问题标题】:Flutter/Flame game homepage or homeview inconsistencyFlutter/Flame 游戏首页或 homeview 不一致
【发布时间】:2020-09-25 08:00:51
【问题描述】:

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

当我在第一次打开时运行我的游戏时,主页图片显示得更小,按钮不显示。

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

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

我只想选择横向。

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

这是我调整大小的方法。

titleRect = Rect.fromLTWH(0, 
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.9, 
game.tileSize*0.8);

我的设置按钮。

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

【问题讨论】:

  • 您在代码中的哪个位置调用await flameUtil.fullScreen();
  • void main() async{ WidgetsFlutterBinding.ensureInitialized(); SharedPreferences 存储 = 等待 SharedPreferences.getInstance(); TheGame游戏= TheGame(存储); runApp(game.widget); Util 火焰Util = Util();等待火焰Util.fullScreen();等待火焰Util.setLandscapeLeftOnly();在这样的 main.dart 文件中

标签: flutter flame


【解决方案1】:

您必须先运行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);
}

【讨论】:

  • void main() async{ WidgetsFlutterBinding.ensureInitialized(); SharedPreferences 存储 = 等待 SharedPreferences.getInstance(); Util 火焰Util = Util();等待火焰Util.fullScreen();等待火焰Util.setLandscapeLeftOnly(); TheGame游戏= TheGame(存储); runApp(game.widget); .在 main.dart 中,我按照您的建议更改了代码,但没有任何区别。我可以更改主页图片的大小。然后它适合屏幕但是我的按钮没有显示。当我随机改变他们的位置时,我看到了他们,但是当我第二次开始游戏时,它又被打破了。
  • 也许你可以试试 NineTileBox?就像我们在这里做的那样:github.com/flame-engine/flame/tree/master/doc/examples/…
  • NineTileBox 也不能正常工作。但我通过将 Flame.images.loadAll 放在 runApp 之前修复了它。现在,当我运行我的游戏时,它可以正常工作。但现在我面临另一个问题。发布 apk 给出相同的错误。主页很小,看不到按钮。另一方面。 app.apk,我运行游戏时创建的 apk 运行良好。为什么会有所作为。如何修复我的发布 apk?你知道为什么两个 apk 的工作方式不同吗?非常感谢
猜你喜欢
  • 1970-01-01
  • 2023-02-15
  • 2022-01-25
  • 2021-11-19
  • 2023-03-06
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多