Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 直线振动的雪碧_Java_Libgdx_Sprite - Fatal编程技术网

Java 直线振动的雪碧

Java 直线振动的雪碧,java,libgdx,sprite,Java,Libgdx,Sprite,我的问题是,当我直接向上或直接侧向移动雪碧时,雪碧会振动。我试过一些东西,但修不好。这是我目前的代码。该框架是libGDX。我已经尝试过将精灵精确地移动到鼠标上,如果它在1像素范围内,以及其他一些东西,但是没有任何东西对我有效。为什么精灵在直线上振动?我如何才能阻止它?谢谢 float speed = 4; // the speed of the sprite Vector3 mousePosition = new Vector3(); if (Gdx.input.isTouched())

我的问题是,当我直接向上或直接侧向移动雪碧时,雪碧会振动。我试过一些东西,但修不好。这是我目前的代码。该框架是libGDX。我已经尝试过将精灵精确地移动到鼠标上,如果它在1像素范围内,以及其他一些东西,但是没有任何东西对我有效。为什么精灵在直线上振动?我如何才能阻止它?谢谢

float speed = 4; // the speed of the sprite

Vector3 mousePosition = new Vector3();

if (Gdx.input.isTouched()) 
{

  camera.unproject(mousePosition.set(Gdx.input.getX(), Gdx.input.getY(), 0));

  if(mousePosition.x > 0 && mousePosition.x < Screen.WIDTH )
  { 

    if(mousePosition.y > 0 && mousePosition.y < Screen.HEIGHT)
    {


      if(mousePosition.x > player.x + (player.width /3))
      {
         player.x+=speed;
      }

     else if(mousePosition.x  < player.x + (player.width /3))
     {
        player.x -=speed;
     }

     if(mousePosition.y  > player.y + (player.height /2))
    {
       player.y+=speed;
    }

    else if(mousePosition.y < player.y + (player.height /2))
   {
      player.y-=speed;
   }



  }
}



}
batch.draw(player.sprite, player.x, player.y);
浮动速度=4;//精灵的速度
Vector3鼠标位置=新Vector3();
if(Gdx.input.isTouched())
{
取消投影(mousePosition.set(Gdx.input.getX(),Gdx.input.getY(),0));
if(mousePosition.x>0&&mousePosition.x0&&mousePosition.yplayer.x+(player.width/3))
{
player.x+=速度;
}
else if(mousePosition.xplayer.y+(player.height/2))
{
player.y+=速度;
}
else if(mousePosition.y
考虑将播放器垂直向上移动的情况。在这种情况下,
mousePosition.x
保持不变,
mousePosition.y
增加
mousePosition.y
以这样一种方式增加,即
player.y
永远不会超过它,因此精灵沿着y方向的mousePosition移动。但是请记住,
mousePosition.x
保持不变。因此,根据您的代码
player.x
将增加,直到满足条件
mousePosition.x>player.x+(player.width/3)
,一旦超过该值,
player.x
将开始减少,直到满足
mousePosition.x
。这意味着
player.x
在增加和减少,导致它在x方向上振动。水平移动时也会发生同样的情况。但在这种情况下,精灵将沿Y方向振动,但如果mousePosition.x和mousePosition.Y不在精灵的x和Y的上方或下方,那么精灵不应该只在其x和Y处绘制吗?我假设您在player.x和player.Y处绘制精灵。由于您正在更改玩家坐标,精灵的位置将相应更改