Scroll Platformer游戏背景平滑滚动y轴

Scroll Platformer游戏背景平滑滚动y轴,scroll,libgdx,smooth-scrolling,vertical-scrolling,Scroll,Libgdx,Smooth Scrolling,Vertical Scrolling,我正在创建简单的2D平台,我希望我的背景图像更新为我的player1 y坐标。 这是我的背景课程 public class Background{ private Sprite sprite, sprite2; public static int x = 50, y = 0; public Background(){ sprite = new Sprite(TextureManager.back); sprite2 = new Spri

我正在创建简单的2D平台,我希望我的背景图像更新为我的player1 y坐标。 这是我的
背景
课程

public class Background{

    private Sprite sprite, sprite2;
    public static int x = 50, y = 0;

    public Background(){
        sprite = new Sprite(TextureManager.back);
        sprite2 = new Sprite(TextureManager.back);
        isSprite = true;
    }

    public void setPosition(float x, float y) {
        sprite.setPosition(x, y);
    }

    public void draw(SpriteBatch batch) {
        sprite.draw(batch);
    }

    public void setPosition2(float x, float y) {
        sprite2.setPosition(x, y);
    }

    public void draw2(SpriteBatch batch) {
        sprite2.draw(batch);
    }

    public float getWidth(){
        return sprite.getWidth();
    }
}
这是我的方法updateCamera

public void updateCamera(){
    float lerp = 0.2f;
    System.out.println("SCREEN " + screenY);
    camera.position.x += (player1.getHitBox().x - camera.position.x) * lerp;
    if(screenY < player1.getHitBox().getY()){
        camera.position.y += player1.getHitBox().y * lerp;
    }else{
        camera.position.y = (screenY - 250);
    }
    if(screenY < player1.getHitBox().getY() && player1.getHitBox().getY() > (screenY - Gdx.graphics.getHeight())){
        screenY += Gdx.graphics.getHeight();
        Background.y = (int) screenY/2; // updating background y-axis!
    }else if(player1.getHitBox().getY() < (screenY - Gdx.graphics.getHeight())){
        screenY -= Gdx.graphics.getHeight();
        Background.y = (int) screenY - Gdx.graphics.getHeight(); // updating background y-axis!
    }
    camera.update();
}
public void updateCamera(){
浮动lerp=0.2f;
System.out.println(“屏幕”+screenY);
camera.position.x+=(player1.getHitBox().x-camera.position.x)*lerp;
如果(屏幕Y(screenY-Gdx.graphics.getHeight()){
screenY+=Gdx.graphics.getHeight();
Background.y=(int)screenY/2;//更新背景y轴!
}else if(player1.getHitBox().getY()<(screenY-Gdx.graphics.getHeight()){
screenY-=Gdx.graphics.getHeight();
Background.y=(int)screenY-Gdx.graphics.getHeight();//更新背景y轴!
}
camera.update();
}

一切正常,但我的滚动并不顺畅。当我的角色位置
player1.getHitBox().getY()>Gdx.graphics.getHeight()
我的背景更新非常缓慢时。这是它的样子。你知道怎么回事吗?

你甚至没有在代码中使用deltaTime。为什么我需要使用deltaTime?我只是跟踪我的球员位置,因为如果你使用lerp,那么你需要deltaTime。