dart 如何使用flame [1.7.3]处理flutter [3.3.1]中的“反锯齿bug”?

ehxuflar  于 2023-06-19  发布在  Flutter
关注(0)|答案(1)|浏览(185)

我正在制作FF 3的复制品以供学习之用。图块是15 x15,因此Map在几乎任何设备上看起来都非常小。我认为一个简单的解决方案是将相机的变焦值设置为:camera.zoom = scaleFactorOnMap.length;,其中scaleFactor是具有某种逻辑的vector 2。但是,我正在经历白色的水平和垂直线时,移动。在模拟器上更差,在Windows/Chrome上更差,在我真实的移动的上稍微好一点。
我读到过,这可能是由于这个“抗锯齿错误”,这是自2018年以来已知的,似乎不会去任何地方。既然可能有很多方法来处理我的用例,那么最好的解决方法是什么呢?有没有其他(更好的)方法可以在没有缩放属性的情况下使Map、碰撞、角色变大?或者是精灵表有什么问题,在这种情况下,什么定义好的精灵?Screenshot on windows of the bug in game
我尝试了几个替代方案:
1.使用camera.viewport = FixedViewport(..)禁用我的操纵杆,我没有测试移动
1.使用我创建的vector 2作为所有内容的比例属性,但结果相同
1.我注意到,如果我指定一个像4.0这样的整数来缩放,它会稍微好一点(可能与图形中的近似错误有关)
1.我读到过cameraComponent,它是实验性的,但我不知道如何使用它。

drkbr07n

drkbr07n1#

This bug将随着叶轮一起消失,但由于这并不是在所有平台上都能实现,因此人们不得不采取变通办法。
有一个FixedIntegerResolutionViewport,它消除了对像素进行舍入的需要,这就是在Flutter中导致这种情况的原因。
https://github.com/flame-engine/flame/blob/main/packages/flame/lib/src/experimental/fixed_integer_resolution_viewport.dart
这是讨论过的问题:https://github.com/flame-engine/flame/issues/1152

相关问题