ゲーム自体にスプライトをオーバーレイして画面を暗くし、その上に明るいスプライトをオーバーレイしたいので、暗いスプライトのように、画面全体をオーバーレイする 1 つの黒いピクセルと、高レベルで白い別のスプライトが 1 つになります。暗くなるにつれて暗くなる、どうすればすべてを正しく描画してブレンドできるでしょうか?
レンダリングコードでこれまでに得たものは次のとおりです。
public void Render() {
// seting up camera position
//render game elements and background
....
batcher.setColor(1, 1, 1, .25f); // set alpha to .25f so it wouldnt be
//completely black
batcher.draw(Assets.shadow, 0, 0, 15, 8f); // drawing the shadow over
//the whole world (15 x 8)
batcher.draw(Assets.light, 4, 0, 8, 2.5f); //drawing the light sprite
....
//finishing rendering
}
私も追加してみました
batcher.setBlendFunction(GL20.GL_BLEND_SRC_ALPHA,
GL20.GL_BLEND_DST_ALPHA);
そこで「乗算」効果を得ようとしましたが、うまくいきませんでしたbatcher.setcolor()
。
また、キャラクターとワールド レンダリングの後にライト レンダリングのコードを配置して、キャラクターにオーバーレイし、その色に影響を与えるようにしました (まあ、それは私が念頭に置いていたことでした..)
これはAssets.shadow
: http://i.stack.imgur.com/kzXlI.png (文字通り 1 つの黒いピクセル.. わかりますか?)
assets.light
: http://i.stack.imgur.com/mNANb.png
それらの写真を拡大し、テクスチャ フィルターを線形に設定して、光の効果を得ます。
他に何か必要な場合は、教えてください。それを提供してください。
編集:ゲーム内での表示は次のとおりです。
光の中で:
影で: