Java 游戏开发,移动相机时产生奇怪的图像效果

Java 游戏开发,移动相机时产生奇怪的图像效果,java,android,andengine,Java,Android,Andengine,我正在开发侧滚2D游戏,使用 我正在使用他们的SVG扩展(我正在使用矢量图形) 但当我移动播放器时,我发现了奇怪而丑陋的效果(当相机精确地追踪播放器时,意味着相机改变了位置) 我的精灵的图像看起来完全不同,它们像是模糊的,或者有一种像那些图像会移动的效果(没有改变它们的位置,只是抖动的效果,真的很难解释并正确地称之为这种效果),希望这张图像可以解释一下: 或多或少,它在游戏中看起来如何,在哪里: a) “第一个”图像显示为正方形,而玩家正在移动(相机不是),图像看起来应该是这样的 b) “第

我正在开发侧滚2D游戏,使用

我正在使用他们的SVG扩展(我正在使用矢量图形)

但当我移动播放器时,我发现了奇怪而丑陋的效果(当相机精确地追踪播放器时,意味着相机改变了位置)

我的精灵的图像看起来完全不同,它们像是模糊的,或者有一种像那些图像会移动的效果(没有改变它们的位置,只是抖动的效果,真的很难解释并正确地称之为这种效果),希望这张图像可以解释一下:

或多或少,它在游戏中看起来如何,在哪里:

a) “第一个”图像显示为正方形,而玩家正在移动(相机不是),图像看起来应该是这样的

b) “第二个”是相同的图像,但有一种奇怪的效果“在相机移动时看起来像图像移动/模糊[追逐玩家])

我的朋友告诉我可能是硬件问题:

“您注意到的模糊实际上是硬件问题。有些手机“平滑”屏幕上的内容,给应用程序带来更好的感觉。我不知道是屏幕还是图形处理器,但我妻子的三星Captivate上没有出现这种情况。这发生在我的心房和卵巢上。由于大屏幕,Xoom上确实可以看到它。”

但似乎有办法阻止它,因为我已经测试了许多类似的游戏,在这些游戏中,相机在追逐玩家,我并没有注意到这样的效果

有没有办法在代码中关闭此功能?


我很感谢以前的回答,不幸的是,问题仍然存在

到目前为止,我一直在尝试:

  • 正在UpdateCaseEntity上执行的setCenter方法上的强制转换(int)
  • 使用PNG图像代替SVG扩展和矢量图形测试游戏
  • 不同的质感
  • 硬件加速

如果有人有不同的想法,什么可能导致这种奇怪的效果,我将非常感谢您的帮助-谢谢。

这听起来像是由于相机以实增量移动,使SVG组件停留在非整数边界上,SVG渲染器进行抗锯齿以演示这一点。尝试将相机移入通过将摄影机值强制转换为int来实现整数增量。

某些设备(Xperia Play)在尝试绘制快速移动的对象时会到处出血。例如,应用程序列表上的红色图标会留下模糊。您可以尝试在清单中进行硬件加速(打开和关闭),以查看是否会有所不同


如果你不使用svg,你可能会得到同样的效果。我不熟悉这个引擎,但我想知道为什么你会使用矢量图形作为像素化的艺术风格。如果你在屏幕截图中的角色真的是矢量艺术,我会感到惊讶……也许它是svg中导入的纹理?我在那天尝试过几次使用flash,并且我也犯了同样的错误…我不是说这不可能,但它不是为了用flash或任何其他矢量软件创建像素艺术。大多数flash游戏都有类似的外观,这是有原因的。

调试它的最佳方法,就是尝试一个外观不同的精灵。 也许这只是因为你的设备显示响应时间慢。 我也是一名Andengine开发人员,从未见过这种行为

有时使用FixedStepEngine修复抖动,这可能会有所帮助


如果你可以发布你的代码,也许我们可以更好地帮助你。

当你的玩家刚向右移动,摄像机开始追他时,除了玩家以外的所有其他精灵都会向左移动。尝试打印“模糊”精灵(或其一些锚点)的绝对坐标到日志。精灵的X坐标应该是线性减少的。如果你注意到它增加了几倍,这可能是模糊的原因


希望这会有所帮助。

谢谢您的回答!在我的相机实现(BoundCamera的扩展)中,我覆盖了
@覆盖公共无效设置中心(最终浮点pCenterX,最终浮点pCenterY){super.setCenter((int)pCenterX,(int)pCenterY);}
因为setCenter是在UpdateCaseEntity上执行的。但它不会改变任何东西,是你的意思还是我做错了?谢谢againNope,这就是我的意思。奇怪——我想这会解决它。嗯……如果你的实体在XX.5位置,而你的相机位置在整数上,比如说XX.0,那么你的实体仍然会将在亚像素上绘制。您可以将所有内容保持为整数…以浮点形式跟踪实体位置,但为了渲染,请使用整数。我不知道这是否是问题所在,但如果您感到绝望,可以尝试一下。感谢您的回答,但这不是Chris Dennett建议的相同解决方案吗?正如您所注意的,播放器纹理不是SVG,而是SVG只是一个PNG,因为我还没有为我的玩家创建一个像样的矢量(当前只是为了测试)使用SVG扩展,我不必担心质量、缩放等问题,而且与需要提供不同分辨率的图形的游戏相比,游戏大小更低。显然我不是专家,但我发现它很有用。谢谢你的回答。不,不幸的是,它没有改变任何东西。如果是这样,你在应用程序中无能为力tion可以解决这个问题,你只需要去买一个屏幕更好的设备。作为记录,没有凹凸;这在StackOverflow是普遍不赞成的。编辑你的原始问题以包含更多信息是吸引注意力的首选方式。这可能只是LCD模糊吗?我不确定,我已经测试过了我在手机上玩了很多游戏,发现很多游戏都没有这种效果,在不同的设备上也可以看到。我不是专家:(谢谢你的回答。不,这不是紧张,我在将普通引擎和物理世界更改为有限fps引擎和固定步长物理世界后产生了这种效果。但是我用mCamera.onUpdate(0.1f)修复了它);在我的生活中