私はJava/Slick2Dで2Dプラットフォーマーゲームを開発しています。
これまで、私のキャラクターはフレームごとに一定量のピクセルを移動していました。アドバイスのように、「デルタ」変数(フレーム間の時間)を使用するように切り替えようとしましたが、キャラクターの動きがひどくぎくしゃくしているようです。
キャラクターの動きをスムーズにするために何ができますか?
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;
}