0

私は最初の横スクロール ゲームに取り組んでおり、終わりのない背景効果を実現しようとしています。ほぼ期待どおりに動作していますが、不具合はほとんどありません。

背景の 2 つのインスタンスがあり (それぞれが画面の幅を埋めます)、1 つは画面の左下隅に配置され、もう 1 つは画面の右隅に配置されます。次に、カメラを各フレームを右に移動し、最初のバックグラウンド インスタンスが完全に左にオフスクリーンになったら、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 クラスの update メソッド -

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

まず、これは連続スクロールの背景を行うための通常の方法 (またはそれに近い方法) ですか?

もしそうなら、私は何を間違っていますか?

4

0 に答える 0