私はlibgdxで最初のものを作っています。それはタイル張りの 2D ゲームです。青と緑の 2 種類のタイルがあるとします。これらは、ゲーム フィールドの 1 つのセルをカバーする 32x32 ピクセルの画像です。添付画像の右側のようなタイル間のトランジションを作成できるようにしたいです。青と緑は、タイル内のすべてのピクセルが同じ色であることを意味するわけではなく、ピクセルの元のテクスチャを定義するだけです。
アルゴリズムについて質問しているわけではありません — JavaScript でキャンバスを介して既に実行しています。特にlibgdxで使用するクラス/テクニック/ソリューションについての指示が必要です。
そのため、青色のテクスチャからピクセルを取得し、緑色のテクスチャの上に描画する必要があります。シェーダーでこれを行う方法はありますか、それとも青いタイルのテクスチャからピクセル値を直接取得する方法はありますか?
既にすべてのテクスチャ (トランジション スプライトはまだ計算されていない) が にロードされているとしTextureAtlas
ます。望ましい効果を得るには、次にどのクラスに進む必要がありますか?
更新:これは、現在のコードの大まかな例です。私の gameScreen.render() メソッドは次のようになります。
batch.begin();
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
Sprite sprite = getFloorSpriteByCell(cells[x][y]);
batch.draw(sprite, x * 32, y * 32);
}
}
batch.end();
そして、getFloorSpriteByCell()
いくつかのプリロードされたスプライトから選択します。これですべてです。派手な GUI での派手なレベルの編集はありません。
私はタイルマップを使用しません。レンダリング中にテクスチャの一部を別のテクスチャの上に描画する必要があるだけです。