【问题标题】:Two questions about Flame Engine关于火焰引擎的两个问题
【发布时间】:2021-06-04 14:09:59
【问题描述】:

我有一些问题。我正在研究在 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();
}

【问题讨论】:

    标签: flutter flame


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

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

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

    【讨论】:

    • 听起来不错。关于第二点 - 这正是我的想法。如果我将某些东西从父母传给孩子,这应该不是什么大问题,但是,据我所知-相反方向的连接存在问题。你能给我一些提示或粘贴一些好的教程吗?现在我真的错过了整个回调想法的重点。我读了 4 或 5 篇文章,但它们都没有真正的帮助,更像是误导。或者那只是我,idk。提前谢谢你。
    • 所以你想在这个孩子中创建游戏,然后将它传递给父母,你是在说什么?
    • 没错。我改进了我的代码并用新的头部实现了回调——它就像一个魅力。谢谢你的建议。
    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多