问题标签 [flame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
152 浏览

flutter - Flutter Flame 游戏 - 动画速度(更新持续时间)

对于那些熟悉在 Flutter 中使用 Flame 进行游戏开发的人,我想知道您是否可以告诉我我是否走在正确的轨道上 - 因为我不确定我在我的测试是我所期望的。我开始使用 Flame 是因为我认为它似乎是一种相对简单的方法来制作我想要制作的基本游戏。

我正在制作一个基本游戏,在屏幕的每个边缘定义了四个边界,一个球会在四个边界周围反弹。边界被定义为小部件(因为我想控制每个小部件的属性 - 有时它们会被“带电”,这意味着球不应该与它们碰撞)。当然,球也是一个小部件。我已经完成了一些基本代码,我可以从球中拖出一条线来指示我想要开始弹跳的方向,然后球将围绕边界弹跳(只需使用基本入射角 = 反射角来确定运动方向)。

进行移动的代码在球小部件的“更新”方法中 - 但是,我发现更新之间的时间大约是 200-300 毫秒,所以如果我想显示球在任何位置移动某种速度,它必须在每个“更新”滴答声中跳跃大量像素 - 因此运动看起来“生涩”。

我这样做对吗?是否有不同的(更好的)方法可以使运动看起来更顺畅?或者,我想知道“更新”滴答的持续时间是否是通过 Android 模拟器中的调试运行代码的结果?(我使用 Android Studio 进行仿真,使用 Visual Studio Code 构建项目)。我知道我在问题中没有实际代码,因为基本上我的代码没有运行没有问题 - 我只想了解“更新”滴答的持续时间是否“正常”,如果由此产生的“生涩”动画是意料之中的 - 还是我需要看看不同的方法?提前致谢!

0 投票
1 回答
30 浏览

flutter - 我的叠加层上的 SetState 在 Flame 上闪烁整个游戏

我刚刚从 Flame 1.0.0-rc8 更新到 Flame 1.0.0-releasecandidate.14,但现在我的叠加层(菜单、分数等)无法在不闪烁游戏的情况下刷新。

这是我的代码的简历:

因此,每 300 毫秒,我的屏幕就会闪烁一次,如果我删除 SetState,则不会刷新分数。

有什么解决办法?谢谢

0 投票
0 回答
38 浏览

flutter - WillPopScope 不再适用于 Flame 1.0.0-releasecandidate.14

我的代码在 Flame 更新(从 rc8 到 rc14)和 Flutter 更新(从 2.2.3 到 2.5.1)之前工作,但现在我无法检测到 Android 手机按下的后退按钮。

这是我的代码示例:

这个版本的 Flame 有新功能吗?还是在这个版本的 Flutter 中?

0 投票
1 回答
40 浏览

flutter - 连接组件,使它们一起移动

火焰组件是否可以将它们附加到其他组件,以便在“父”组件移动时更新它们的位置?

我想要一个 hitbox 组件,并用 xy 偏移量将玩家精灵、名称标签等附加到它上面。

0 投票
1 回答
70 浏览

flutter - 火焰 releasecandidate.15 中的 onTapDown 问题

长话短说。我在扩展小部件中使用火焰引擎。现在我正在加载六个背景以及我在 Game 中的 SpriteComponent 类,它使用 HasTappableComponents 扩展了 FlameGame。现在我想给这个 SpriteComponent 添加一些交互,比如在没有点击时对点击或切换动画的反应。我不明白为什么它甚至不打印“点击”...

我试图将 final 更改为 late 和其他一些枯燥的想法,但没有结果。如何向此 FoxCharacter 添加交互?这可能是它不能在 SpriteComponent 中使用而只能在 PositionComponent 中使用吗?

0 投票
3 回答
191 浏览

flutter - 雪碧没有出现在使用火焰的颤振应用程序中

我在这里关注flutter的flame教程,并且能够让我的代码在模拟器(iOS和chrome)上编译和运行,但是当应用程序运行时什么都没有出现。我认为应该显示我的 crate.png 的图像,但我看到的只是黑屏。

这是我的 main.dart:

这是我的 pubspec.yaml:

我在项目根目录中创建了 assets 文件夹,并将其放在一个名为 images 的文件夹中。

编辑

我刚刚意识到有一些错误输出:

我在调用 add 之前尝试在负载上运行,但我得到了同样的错误:

0 投票
1 回答
86 浏览

flutter - Flame 0.29.4 无法以可靠的零安全运行

尝试运行我的 Flame 应用程序时,出现以下错误:

错误:无法以可靠的 null 安全性运行,因为以下依赖项不支持 null 安全性:

  • 包装:火焰
  • 包:ordered_set
  • 包:box2d_flame

我的pubspec.yaml文件中有以下内容:

0 投票
1 回答
132 浏览

android - 某些设备上使用颤振和火焰动画的错误

基本上,我在根据我看到的教程从游戏创建的应用程序中遇到问题,但是,我的角色动画在某些设备上是错误的,而在其他设备上运行正常,如下所示的动画正确的维京动画它在某些设备上的显示方式:

正确的动画

和 Viking 在某些设备上的动画错误(几乎总是出现不止一个 Viking,而且动画很糟糕):

维京在某些设备上的动画错误

我正在使用的 spritesheet 有 256x144 像素的维京人图像,其中前 29 帧是他在运行,其余的他在跳跃(空闲)遵循在 Flutter 中定义维京人动画的代码行:

viking.dart 文件中的部分动画:

我在 viking_run.dart 文件中的游戏中创建维京人的部分:

并且两台设备上的android版本都是一样的

0 投票
1 回答
38 浏览

flutter - 函数不会在 Bonfire 游戏引擎中将变量设置回 false

我正在尝试创建一种方法来在触发使用 Bonfire 游戏引擎的传感器时拾取地图上的对象,并通过我编写的使用游戏更新功能查看对象是否的函数将项目放入我的库存中是否被捡起。我遇到了一个问题,当我拿起物品并将拾取值设置为 true,然后将其存储在我的物品插槽变量之一中,然后将其设置回 false,它不会返回 false,因为函数我写信看看它是否被拾起,由于某种原因无法设置布尔值,然后继续将该项目复制到我的其余项目插槽中。这是我创建的对象以及游戏更新函数和我编写的用于检查项目是否被拾取的函数。

检查变量是否为真的函数

每毫秒更新一次的函数

我创建的对象

0 投票
1 回答
101 浏览

flutter - 使用火焰引擎调整屏幕大小的问题

我正在尝试直接在我的颤振网站中嵌入一个使用火焰引擎的小游戏。

我设法创建了一个包含以下内容的容器GameWidget

我让游戏运行,在屏幕上显示一个玩家并移动。

我的宽度是动态的我希望能够调整屏幕和 GameViewport 的大小来调整自己的大小。问题是当屏幕自行调整大小时,整个游戏都会重置。onGameResize 和 onLoad 都被调用:最终结果我失去了我的玩家位置。

它尝试覆盖 onGameResize 以在 Game 类中调整大小之前获取玩家位置,但在调用它时玩家位置已经设​​置为 [0,0]。

我看过几个教程,但我不知道如何绕过这个问题。

从这里去哪里的任何想法。