向左或向下移动精灵比向右或向上移动精灵要快

时间:2014-04-13 21:05:35

标签: java lwjgl slick

我正在使用 Slick2D LWGJL 进行基本游戏,但我有一个奇怪的问题,当我将我的播放器(图像)移动到左侧/向下它比向右/向上移动慢。

Input input = gc.getInput();

    if(input.isKeyDown(Input.KEY_W)){
        PlayerY += delta * .1f;
    }
    if(input.isKeyDown(Input.KEY_S)){
        PlayerY -= delta * .1f;
    }

    if(input.isKeyDown(Input.KEY_A)){
        PlayerX -= delta * .1f;
    }
    if(input.isKeyDown(Input.KEY_D)){
        PlayerX += delta * .1f;
    }

所有这些代码都在方法 update()

修改:我可以在此处查看我的所有代码https://www.dropbox.com/sh/p13sbxucmni36vd/K5XTaNOulm

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

  //Setting the original PlayerX and PlayerY values
    private static int PlayerX = Game.ScreenLength/2;
    private static int PlayerY = Game.ScreenHeight/2; 

<强> VS

   if(input.isKeyDown(Input.KEY_W)){
        PlayerY += delta * .1f;
    }
    if(input.isKeyDown(Input.KEY_S)){
        PlayerY -= delta * .1f;
    }

    if(input.isKeyDown(Input.KEY_A)){
        PlayerX -= delta * .1f;
    }
    if(input.isKeyDown(Input.KEY_D)){
        PlayerX += delta * .1f;
    } 

看到问题了吗?更改PlayerX和PlayerY(Delta以防万一)浮动,你的问题将得到解决。记住,当你从float转换为int时,它总是会向下舍入。