0

私たちのゲームデザインでは、(できれば) マップ画像の背景レイヤーをチェックできるようにすることで、衝突検出を実装したいと考えています。現在 .png を使用していますが、問題は透明度チャネル (アルファ) が最上層 (透明度を決定する) にとって有用な情報であることです。画像を透明にしない限り、このレイヤーをビットマスクとして使用することはできません。私たちのゲームはタイルベースの RPG であるため、チェックは簡単です (すべてのブロック サイズのピクセルを繰り返します。アルファ = 1 の場合、このブロックはマップ ソリッドであり、通り抜けたり踏んだりすることはできません)。

代替手段 (私たちが考えることができるもの) は、あまりにも多くのセットアップを必要とします。たとえば、2 番目の画像は完全に一致する必要があるため、エラーの余地はありません。また、画像内の個々のブロックを歩行可能として指定するには、この情報を画像に保存するか、これを手動で設定する必要がありますが、これは強引すぎます。透明レイヤーのアイデア (それを機能させる方法を提案できる場合) は、Photoshop で画像に影を付けて透明な画像を作成するだけで、ほとんど作業を必要としないので理想的です。

TLDR; 透明度をレンダリングせずにビットマスクの形式としてJavaでpngのアルファチャンネルを使用できますか? 複数のレイヤーを保存できる、swing で簡単に処理できる画像形式はありますか?

4

1 に答える 1

0

単一の値で操作しているので、他のチャネルの 1 つで 1 つの数値を予約してみませんか。1600 万色を保持しますが、衝突色として b=0 を予約します。人々は 0,0,0 と 0,0,1 の違いを見分けることができないため、純粋な黒を決して使用しないでください。問題は、奇妙な透明度エンコーディングなしで解決されます。

于 2013-03-16T12:44:05.990 に答える