我有一个位图字体,它显示一个玩家在屏幕上以恒定速度移动时的分数。因为播放器总是在移动,所以我必须重新计算每帧的字体位置。我用这个密码。
scoreFont.setScale(4f, 4f);
scoreFont.draw(batch, "" + scoreToShow, playerGhost.pos.x + 100f, 600f);
playerGhost.render(batch);
有问题吗?字体不停地抖动。它只值几个像素的振动,但它稍微引人注目。当我在平板电脑上运行时,它会更明显。
这是已知的虫子吗?
我怎样才能让它停止颤抖?
最佳答案
调用scorefont.setUseIntegerPositions(false);
以便它不会将字体的位置舍入到最接近的整数。您可能还需要将字体的最小筛选设置为线性或mipmaplinearenarest,将最大筛选设置为线性。
默认行为的原因是,默认配置用于像素完美的文本,用于单位等于像素大小的视口集。如果您的视窗的尺寸与屏幕的像素尺寸完全相同,此配置将有助于防止文本看起来有点模糊。