对于那些熟悉在Flutter中使用Flame进行游戏开发的人,我想知道您是否可以建议我是否在正确的轨道上-因为我不确定我在测试中看到的是不是我所期望的。我从Flame开始,因为我认为它看起来是一种相对简单的方式来制作我想要制作的基本游戏。
我正在制作一个基本的游戏,其中在屏幕的每个边缘都定义了四个边界,一个球将围绕这四个边界反弹。边界被定义为窗口小部件(因为我想控制每个窗口小部件的属性-有时它们会“带电”,这意味着球不应该与它们碰撞)。当然,球也是一个小部件。我已经完成了一些基本的代码,我可以从球上拖动一条线来指示我想要开始反弹的方向,然后球将围绕边界反弹(只需使用基本入射角度=反射角度来确定移动方向)。
执行移动的代码在ball小部件的"update“方法中-然而,我发现更新之间的时间大约是200-300毫秒,所以如果我想要显示球以任何一种速度移动,它必须在每个"update”刻度跳跃大量的像素-因此移动看起来“急转直下”。
我这样做是对的吗?有没有不同的(更好的)方法可以让动作看起来更流畅?或者,我想知道“更新”的持续时间是否是在Android模拟器中通过debug运行代码的结果?(我使用Android Studio进行仿真,使用Visual Studio Code构建项目)。我知道在这个问题中我没有实际的代码,因为基本上我的代码没有运行的问题-我只是想了解“更新”滴答的持续时间是否“正常”,以及产生的“抖动”动画是否只是预期的-或者我需要考虑一种不同的方法?提前感谢!
发布于 2021-10-19 05:34:33
你最好不要使用小部件来移动游戏部件,你应该使用Flame组件。例如,你可以有4个SpriteComponent
作为墙,然后球作为另一个SpriteComponent
,然后你可以使用碰撞检测系统,在球接触其中一个墙时采取行动。
https://stackoverflow.com/questions/69344086
复制