Platformer游戏背景平滑滚动y轴

时间:2015-04-20 06:15:22

标签: scroll libgdx smooth-scrolling vertical-scrolling

我正在创建简单的2D平台游戏,我想用我的player1 y坐标更新我的背景图像。 这是我的Background班级

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

一切正常但我的滚动不顺畅。当我的角色位置player1.getHitBox().getY() > Gdx.graphics.getHeight()我的背景更新很慢时。这是它的外观visualy。任何想法有什么不对?

0 个答案:

没有答案