在游戏中滚动永无止境的背景不能按预期工作

时间:2014-12-01 13:04:26

标签: java libgdx side-scroller

我正在制作我的第一个横向卷轴游戏,并且我正在努力实现无休止的背景效果,它几乎正如我所期望的那样工作但是没有什么小故障。

我有2个背景实例(每个填充屏幕宽度),一个放在屏幕的左下角,一个放在屏幕的右边。然后我将相机每帧向右移动,当第一个背景实例完全偏离屏幕左侧时,我将其X重置到相机右侧,使其现在(相对于相机)离屏幕右侧。这种情况很多时候都会起作用,但是现在看来重置其x位置的方法很晚才被称为几帧,并导致后台出现差距。

我在主游戏中使用的更新代码是 -

private void update(float delta){
    //update camera and world
        camera.position.set(camera.position.x+scrollSpeed, camera.position.y, 0);
        camera.update();
        world.step(step, velocityIterations, positionIterations);

        if(gameInProgress){ 
            //backgrounds (array holds the 2 instances of the background)
                for(int i=0; i< bgFillArray.size; i++){
                    bgFillArray.get(i).update();
                }
        }
    stage.act(delta);
    tweenManager.update(delta); 
}

BgFill类中的更新方法 -

public void update(){
    float currentXPos = getX();
    float leftBoundary = camera.position.x-1200;
    float rightOfScreen = camera.position.x+400;

    if(active){
        //check to see if the camera has gone past this instance. if so then move to right
            if(currentXPos <= leftBoundary){
                setX(rightOfScreen);
            }
    }
}

首先,这是通常的方式(甚至是关闭)来进行连续滚动背景吗?

如果是的话,我做错了什么?

0 个答案:

没有答案