0

我有一些问题。我正在研究在 Expanded Widget 中使用 Flame Engine 作为更大应用程序的一部分的应用程序。因此 Flame 仅用作按钮的图形表示和交互。

现在,理论上:

  1. 是否可以在我的应用程序中将变量值从火焰发送到常规文本小部件?(我知道我可以读取初始值为 0,但即使控制台显示递增值也不会发生任何事情)我应该在主应用程序中为 Flame 和 future 编写某种流,还是有其他选择?
  2. 如何在火焰中管理视图?我的意思是目前我有两个不同的背景和不同的动画。在颤动的主应用程序的屏幕底部,我有一些按钮,我想根据需要使用这些按钮来更改火焰背景和动画(从火焰到我的按钮的简单响应)

至于代码,我在应用程序中的计数器如下所示:

...
Column(
   children: [
     Text('show 1'),
     Text(_firstCounter.toString())
   ],
),
...
void CountersAndOthers() async {
  if(_gameInProgress == true){ return; }
  _gameInProgress = true;

  _testGame = new TestGame();
  _firstCounter = _testGame.counterNumeroUno;
}

在 Flame 中,它是一个简单的 onTap() 函数,用于递增 int 计数器:

@override
void onTap() async {
  counter++;
  print(counter);
  jump();
  _timer.start();
}
4

1 回答 1

1
  1. 在不使用任何状态管理库的情况下,您可以将小部件的回调函数传递给扩展的 Flame 游戏类,并在onTap调用 Flame 时更新小部件的状态。

  2. 反过来,将您的游戏类传递给导航按钮并调用您在火焰游戏中创建的函数,该函数将对您的按钮按下作出反应。

根据您的应用程序的结构,还有多种方法可以做到这一点。

于 2021-06-04T14:57:41.183 回答