0

2400x480ピクセルのタイルの背景があります。視差効果のためにもう1つの遠いレイヤーもあります。forループで背景を描画するのは論理的ですか?

for(int i=0;i<100;i++) {
    //Drawing code like 0+2400*i ...
}
4

1 に答える 1

3

これで始められるといいのですが、本当にわかりません...

以下では、テクスチャが一度に表示されると仮定します。テクスチャのサイズが2400*480 = (3*800)*480原因で---これは正しくないかもしれませんが、とにかく。

レイヤーごとに、テクスチャ座標が固定された2つのクワッドがあります。最初は、最初のクワッドが1つ表示されます。アニメーションの過程で、最初の部分は画面の外に移動し、2番目の部分は画面の内側に移動します。テクスチャの境界線が一致している必要があります。一致していないと、亀裂が表示されます。

+-------------++-------------+
|             ||             |
|             ||             |
+-------------++-------------+
^             ^
   visible

... as time progresses ...
+-------------++-------------+
|             ||             |
|             ||             |
+-------------++-------------+
      ^             ^
         visible

これは、最下層と次の層に対して行うことができます。異なる距離のレイヤーには異なる速度を使用します。複数のレイヤーがある場合は、ブレンドする必要があります。

最初の仮定が正しくないことが判明した場合は、アニメーション中にテクスチャ座標を変更する必要があります。フルスクリーンクワッドが1つあり、テクスチャ座標はテクスチャの3分の1に設定されています。次に、上部がヒットするまで、4つの座標すべてを同じ方向に直線的に移動します。この時点で、どういうわけか、最初の3分の1をもう一度表示し始める必要があります。たとえば、2番目のクワッドを使用します。

于 2012-04-16T18:31:14.250 に答える