window 运动导致的增量时间不正确
Incorrect delta time caused by window movement
我正在创建一个 Minecraft 克隆菜单,徽标上的黄色文本导致了问题。它是一个 sprite,我正在使用缩放方法将其放大和缩小,就像在游戏的实际菜单中一样。此缩放使用增量时间,因此运行平稳。但是每当我似乎移动 window 时,它都会暂时暂停我的游戏并创建一个不准确的增量时间,例如:3.0482762
9.7077E-4
4.25514E-4
.这些不准确使我的文字比例超过我想要的,这是我正在使用的代码 LibGdx:
@Override
public void render(float delta) {
// Update
System.out.println(delta);
if(titleEnlargement)
{
if(title.getScaleX() < 1.1)
title.setScale(title.getScaleX() + (delta * 0.4f));
else
titleEnlargement = false;
}
else if(!titleEnlargement)
{
title.setScale(title.getScaleX() - (delta * 0.4f));
if(title.getScaleX() <= 1)
titleEnlargement = true;
}
// Render
batch.draw(background, 0, 0);
logo.draw(batch);
title.draw(batch);
}
您可以裁剪增量,使其永远不会超过特定值。这就是 Stage 为防止动作抖动所做的。
将以下内容放在渲染方法的开头:
delta = Math.min(delta, 1 / 30f);
我正在创建一个 Minecraft 克隆菜单,徽标上的黄色文本导致了问题。它是一个 sprite,我正在使用缩放方法将其放大和缩小,就像在游戏的实际菜单中一样。此缩放使用增量时间,因此运行平稳。但是每当我似乎移动 window 时,它都会暂时暂停我的游戏并创建一个不准确的增量时间,例如:3.0482762 9.7077E-4 4.25514E-4 .这些不准确使我的文字比例超过我想要的,这是我正在使用的代码 LibGdx:
@Override
public void render(float delta) {
// Update
System.out.println(delta);
if(titleEnlargement)
{
if(title.getScaleX() < 1.1)
title.setScale(title.getScaleX() + (delta * 0.4f));
else
titleEnlargement = false;
}
else if(!titleEnlargement)
{
title.setScale(title.getScaleX() - (delta * 0.4f));
if(title.getScaleX() <= 1)
titleEnlargement = true;
}
// Render
batch.draw(background, 0, 0);
logo.draw(batch);
title.draw(batch);
}
您可以裁剪增量,使其永远不会超过特定值。这就是 Stage 为防止动作抖动所做的。
将以下内容放在渲染方法的开头:
delta = Math.min(delta, 1 / 30f);