2400x480ピクセルのタイルの背景があります。視差効果のためにもう1つの遠いレイヤーもあります。forループで背景を描画するのは論理的ですか?
for(int i=0;i<100;i++) {
//Drawing code like 0+2400*i ...
}
これで始められるといいのですが、本当にわかりません...
以下では、テクスチャが一度に表示されると仮定します。テクスチャのサイズが2400*480 = (3*800)*480
原因で---これは正しくないかもしれませんが、とにかく。
レイヤーごとに、テクスチャ座標が固定された2つのクワッドがあります。最初は、最初のクワッドが1つ表示されます。アニメーションの過程で、最初の部分は画面の外に移動し、2番目の部分は画面の内側に移動します。テクスチャの境界線が一致している必要があります。一致していないと、亀裂が表示されます。
+-------------++-------------+ | || | | || | +-------------++-------------+ ^ ^ visible ... as time progresses ... +-------------++-------------+ | || | | || | +-------------++-------------+ ^ ^ visible
これは、最下層と次の層に対して行うことができます。異なる距離のレイヤーには異なる速度を使用します。複数のレイヤーがある場合は、ブレンドする必要があります。
最初の仮定が正しくないことが判明した場合は、アニメーション中にテクスチャ座標を変更する必要があります。フルスクリーンクワッドが1つあり、テクスチャ座標はテクスチャの3分の1に設定されています。次に、上部がヒットするまで、4つの座標すべてを同じ方向に直線的に移動します。この時点で、どういうわけか、最初の3分の1をもう一度表示し始める必要があります。たとえば、2番目のクワッドを使用します。