0
我正在用Java/Slick2D开发2D平台游戏。精灵的不平滑运动
到目前为止,我的角色每帧都移动了一个恒定的像素数量。 我试过切换到使用'delta'变量(帧之间的时间量),就像建议的那样,但角色的移动看起来非常紧张。
如何平滑角色的动作?
private static final float DEFAULT_SPEED = 0.15f;
Vector2f trans = new Vector2f();
Input i = gc.getInput();
boolean run = false;
// X-Axis Movement
if (i.isKeyDown(Input.KEY_D)){
trans.x += DEFAULT_SPEED * delta;
lastMoveDirection = Direction.RIGHT;
}
if (i.isKeyDown(Input.KEY_A)){
trans.x -= DEFAULT_SPEED * delta;
lastMoveDirection = Direction.LEFT;
}
if (i.isKeyDown(Input.KEY_LSHIFT)){
trans.x *= RUN_SPEED_MULTIPLIER;
run = true;
}
谢谢,我已经设法通过divinding来解决它,就像你说的,而不是通过浮点数来实现。我猜这只是浮点数像素不好看。 – 2013-02-26 18:00:08
插值工作的原因在于,它可以平滑地将运动分散到帧中,而与帧速度无关。我怀疑有一个浮点数像素是特别的问题,但它可能是。 – MrLeap 2013-02-26 18:02:01
嗯,我只是猜测,但由于实际上不可能移动非整数像素并且抗锯齿处于活动状态,所以模糊可能会导致此问题。我真的不知道,但现在已经修好了。 整数除法总是让我。 – 2013-02-26 18:06:04