Java 游戏中不断滚动的背景未按预期工作

Java 游戏中不断滚动的背景未按预期工作,java,libgdx,side-scroller,Java,Libgdx,Side Scroller,我正在做我的第一个侧滚游戏,我正在努力实现一个永不停息的背景效果,它几乎像我预期的那样工作,但有一些小故障 我有两个背景实例(每个实例填充屏幕宽度),一个位于屏幕左下角,另一个位于屏幕右侧。然后,我将相机每帧向右移动,当第一个背景实例完全脱离屏幕向左移动时,我将其X重置为相机右侧,使其现在(相对于相机)脱离屏幕右侧。这在很多时候都是有效的,但似乎每隔一段时间,重置其x位置的方法就会被延迟几帧调用,并导致背景中出现间隙 我在主游戏中使用的更新代码是- private void update(flo

我正在做我的第一个侧滚游戏,我正在努力实现一个永不停息的背景效果,它几乎像我预期的那样工作,但有一些小故障

我有两个背景实例(每个实例填充屏幕宽度),一个位于屏幕左下角,另一个位于屏幕右侧。然后,我将相机每帧向右移动,当第一个背景实例完全脱离屏幕向左移动时,我将其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); 
}
private void更新(浮动增量){
//更新相机和世界
摄像机位置设置(摄像机位置x+滚动速度,摄像机位置y,0);
camera.update();
世界步(步、速度迭代、位置迭代);
如果(游戏进程){
//背景(数组包含背景的2个实例)
对于(int i=0;i
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);
            }
    }
}
public void update(){
float currentXPos=getX();
浮动左边界=camera.position.x-1200;
屏幕右侧浮动=摄像机.position.x+400;
如果(活动){
//检查摄影机是否已通过此实例。如果已通过,请向右移动

如果(绘制代码位置和其他字段中的CurrentXPO应复制到局部变量,因此该方法以固定值运行。在视差上方搜索并比较您的代码、示例或thatks,前面的问题非常有用听起来您的代码中有一个bug。这种方法似乎很合理。我看到的一个常见错误是copying对向量的引用,而不是生成向量的实际副本,因此最终修改了不应该修改的内容。例如,使用
vector2vec=newvector2(otherVec);
而不是
Vector2 vec=otherVec;
。此外,请确保将背景位置四舍五入到像素大小的最近倍数,这样背景就不会跨越像素列之间的边界,这可能会导致间隙问题。很可能。我正在工作,但会更新我的问题w我到家的时候会给你打电话。