【问题标题】:Lines in sprites flicker when moving移动时精灵中的线条闪烁
【发布时间】:2022-01-13 18:00:04
【问题描述】:

我们正在用颤动的火焰创建游戏,每当我们移动相机时,我们都会注意到一些随机抖动。我们有一个位置组件,它通过改变位置来移动,相机跟随

我们现在有一个非常简单的移动,其中 dt 是扩展 PositionComponent 的 Player 组件内的增量时间

  void update(double dt) {
    if (position.distanceTo(moveTarget) > 0.1) {
      final moveDirection = moveTarget - position;
      moveDirection.normalize();
      position += moveDirection * dt * speed.toDouble();
    }
    super.update(dt);
  }

这是相机

 camera.followComponent(player);

但是我们的精灵有很多抖动。精灵的线条闪烁。我们将使用像素艺术,但这只是一个示例精灵来说明

是什么原因造成的?

1 轴运动似乎效果更好,但仍然

我们正在使用 Flutter 2.8.1 版本的 Flutter Web 上运行它

【问题讨论】:

    标签: flutter dart flame


    【解决方案1】:

    这可能是由Flutter's anti aliasing bug引起的。

    如果您使用的精灵没有像中间那样的线条,您应该不会注意到它,正如您的示例中的纯蓝绿色组件所示。

    【讨论】:

    • 这是最奇怪的事情。它似乎发生在我同事的笔记本电脑上,但不是我自己。我们正在使用 Flutter Web,但切换浏览器似乎没有任何区别。
    • 这在很大程度上取决于大小和分辨率,因为它基本上是导致它的舍入错误。
    • 啊,好吧,我们刚刚获得了一个大型像素艺术游戏的合同,并决定使用火焰而不是 pixi.js。但是用这个漏洞制作像素艺术游戏似乎是不可能的,这不是火焰 ofc 的错。
    • 你尝试过另一个精灵吗?毕竟这是一个非常罕见的问题,而且你使用的精灵看起来不像你最终会使用的东西?
    • 是的,我们有,但问题是我无法在 stackoverflow 上上传艺术作品。这个周末我会试着找到一些能更好地展示这个问题的精灵。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多