【问题标题】:Flutter Flame game - animation speed (update duration)Flutter Flame 游戏 - 动画速度(更新持续时间)
【发布时间】:2021-11-19 10:54:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: flutter visual-studio-code flame


    【解决方案1】:

    您最好不要使用小部件来移动游戏部件,而应该使用 Flame 组件。例如,您可以将 4 个SpriteComponents 作为墙,然后将球作为另一个SpriteComponent,然后您可以使用碰撞检测系统在球接触其中一个墙时采取行动。

    https://docs.flame-engine.org/main/collision_detection.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 2012-01-25
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多