0

こんにちは、私のゲームで画面の左端または右端にスクロールすると、次のコードが機能します。ただし、「マップ」の端に到達したときに画面の右端または下端までスクロールすると、マップの端を超えて見ることができます。つまり、白いスペース、つまりステージの色が見えます。一方、マップの左端または上端までスクロールすると、マップの端を超えて見ることができません。

public function scroll_screen():void { //scrolling left, right, up, down

     var stagePositionX:Number = container.x+player.x;
     var rightEdge:Number = stage.stageWidth-edgeDistance;
     var leftEdge:Number = edgeDistance;

     var stagePositionY:Number = container.y+player.y;
     var bottomEdge:Number = stage.stageHeight-edgeDistance;
     var topEdge:Number = edgeDistance;

        //horizontal scrolling
        if (stagePositionX > rightEdge) {
            container.x -= (stagePositionX-rightEdge);
            if (container.x < -(container.width-stage.stageWidth)) container.x = -(container.width-stage.stageWidth);
        }
        if (stagePositionX < leftEdge) {
            container.x += (leftEdge-stagePositionX); 
            if (container.x > 0 )container.x = 0;

        }

        //vertical scrolling
        if (stagePositionY > bottomEdge) {
            container.y -= (stagePositionY-bottomEdge);
            if (container.y < -(container.height-stage.stageHeight)) container.y = -(container.height-stage.stageHeight);
        }
        if (stagePositionY < topEdge) {
            container.y += (topEdge-stagePositionY);
            if (container.y > 0) container.y = 0;
        }
    }

それが理にかなっていることを願っています、ありがとう

4

1 に答える 1

0

**更新済み* *

あなたの問題はcontainer.width、形状が最初の長方形から離れたときに変更されることです。

を作成し、var initialContainerWidthコンテナの幅をそこに保存してから、形状を追加し、この保存された変数を の代わりに使用すると、container.width正常に機能します。または、フライング シェイプをステージに直接追加して、コンテナーのサイズを拡張しないようにすることもできます。

確認するには、container.width の代わりに 1386 をハードコードするだけです。

于 2013-08-03T13:13:27.013 に答える