ページ 11

画像の上から画像を上書きしてレイヤーのように使いたい

Posted: 2012年3月21日(水) 18:20
by はなげ
マップを作っています。

まず最初に通常地形のマップチップでマップを描画したあと、その上から透過処理を行った画像を上書きしたいのですが、実際にやってみると最初に描画した通常地形マップチップのものしか描画されず、あとから描画したものが表示されなくて困っています。

レイヤー的な使い方をしたいです。

知っている方がいればぜひ教えていただきたいです。

Re: 画像の上から画像を上書きしてレイヤーのように使いたい

Posted: 2012年3月21日(水) 18:36
by softya(ソフト屋)
ソースコードを提示してもらうと確認できるかと思います。
通常は背景・前景の順番で描画すれば問題ないはずです。

前景が描画されない原因は
(1)透過処理で完全透明に成っている(透過処理を止めてみる)。
(2)実は描画されていない(背景の描画を止めると確認できる)。
(3)Zバッファが有効で上書き出来ないように制御されている(背景を止めて単色で塗っても描画されないはず)。
などが考えられます。

Re: 画像の上から画像を上書きしてレイヤーのように使いたい

Posted: 2012年3月22日(木) 15:03
by はなげ
softyaさん、回答ありがとうございます。

ソースが膨大でメチャクチャなので描画部分の要点だけ提示させて頂きます。

void MapDrawer(void){
 while(条件式){
  基本地形マップの描画処理
 }

 while(条件式){
  前景画像の描画処理
 }
}

こんな感じです。
最初の基本地形マップの描画処理whileループをコメントアウトすると前景画像が描画されました。

Re: 画像の上から画像を上書きしてレイヤーのように使いたい

Posted: 2012年3月22日(木) 15:11
by softya(ソフト屋)
この情報で考えられるのは「基本地形マップの描画処理」でwhile(条件式)を満たしてしまうと、「前景画像の描画処理」に行かない条件になるのでは?と思います。
最初の基本地形マップの描画処理whileループをコメントアウトすると前景画像が描画されました。
を元に戻した上で
(1)デバッガのブレークポイントを使って、「基本地形マップの描画処理」された後に「前景画像の描画処理」が呼び出されているか確認をしてみてください。
(2)もし「前景画像の描画処理」が呼び出されているのが確認できたら、「前景画像の描画処理」の代わりに単色での塗りつぶしを行なってみて下さい。DXライブラリならDrawBoxなどを使います。

ところでZバッファなど特殊な2Dの処理を行なっていますか?