0

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

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

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

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

4

1 回答 1

0

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

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

于 2021-10-19T13:34:33.183 回答