简体   繁体   English

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

[英]Moving a sprite to the left or down is faster than moving it to the right or up

I am making a basic game with Slick2D and LWGJL but I am having a wierd issue that when i'm moving my player(an image) to the left/down it is slower than moving to the right/up. 我正在用Slick2DLWGJL制作基本游戏,但遇到一个奇怪的问题,当我将播放器(图像)向左/向下移动时,它比向右/向上移动的速度慢。

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;
    }

All of this code is in the method update() 所有这些代码都在方法update()中

Edit: All of my code can be viewed in here https://www.dropbox.com/sh/p13sbxucmni36vd/K5XTaNOulm 编辑:我的所有代码都可以在这里查看https://www.dropbox.com/sh/p13sbxucmni36vd/K5XTaNOulm

Any help will be appreciated 任何帮助将不胜感激

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

vs 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;
    } 

See the problem yet? 看到问题了吗? Change PlayerX and PlayerY(Delta too just in case) to floats and your problem will be solved. 更改PlayerX和PlayerY(以防万一也要使用Delta)以浮动,您的问题将得到解决。 Remember when you convert from float to int it always will round down. 请记住,当您从float转换为int时,它总是会舍入。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM