マップを作っています。
まず最初に通常地形のマップチップでマップを描画したあと、その上から透過処理を行った画像を上書きしたいのですが、実際にやってみると最初に描画した通常地形マップチップのものしか描画されず、あとから描画したものが表示されなくて困っています。
レイヤー的な使い方をしたいです。
知っている方がいればぜひ教えていただきたいです。
画像の上から画像を上書きしてレイヤーのように使いたい
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画像の上から画像を上書きしてレイヤーのように使いたい
ソースコードを提示してもらうと確認できるかと思います。
通常は背景・前景の順番で描画すれば問題ないはずです。
前景が描画されない原因は
(1)透過処理で完全透明に成っている(透過処理を止めてみる)。
(2)実は描画されていない(背景の描画を止めると確認できる)。
(3)Zバッファが有効で上書き出来ないように制御されている(背景を止めて単色で塗っても描画されないはず)。
などが考えられます。
通常は背景・前景の順番で描画すれば問題ないはずです。
前景が描画されない原因は
(1)透過処理で完全透明に成っている(透過処理を止めてみる)。
(2)実は描画されていない(背景の描画を止めると確認できる)。
(3)Zバッファが有効で上書き出来ないように制御されている(背景を止めて単色で塗っても描画されないはず)。
などが考えられます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
はなげ
Re: 画像の上から画像を上書きしてレイヤーのように使いたい
softyaさん、回答ありがとうございます。
ソースが膨大でメチャクチャなので描画部分の要点だけ提示させて頂きます。
void MapDrawer(void){
while(条件式){
基本地形マップの描画処理
}
while(条件式){
前景画像の描画処理
}
}
こんな感じです。
最初の基本地形マップの描画処理whileループをコメントアウトすると前景画像が描画されました。
ソースが膨大でメチャクチャなので描画部分の要点だけ提示させて頂きます。
void MapDrawer(void){
while(条件式){
基本地形マップの描画処理
}
while(条件式){
前景画像の描画処理
}
}
こんな感じです。
最初の基本地形マップの描画処理whileループをコメントアウトすると前景画像が描画されました。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画像の上から画像を上書きしてレイヤーのように使いたい
この情報で考えられるのは「基本地形マップの描画処理」でwhile(条件式)を満たしてしまうと、「前景画像の描画処理」に行かない条件になるのでは?と思います。
(1)デバッガのブレークポイントを使って、「基本地形マップの描画処理」された後に「前景画像の描画処理」が呼び出されているか確認をしてみてください。
(2)もし「前景画像の描画処理」が呼び出されているのが確認できたら、「前景画像の描画処理」の代わりに単色での塗りつぶしを行なってみて下さい。DXライブラリならDrawBoxなどを使います。
ところでZバッファなど特殊な2Dの処理を行なっていますか?
を元に戻した上で最初の基本地形マップの描画処理whileループをコメントアウトすると前景画像が描画されました。
(1)デバッガのブレークポイントを使って、「基本地形マップの描画処理」された後に「前景画像の描画処理」が呼び出されているか確認をしてみてください。
(2)もし「前景画像の描画処理」が呼び出されているのが確認できたら、「前景画像の描画処理」の代わりに単色での塗りつぶしを行なってみて下さい。DXライブラリならDrawBoxなどを使います。
ところでZバッファなど特殊な2Dの処理を行なっていますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。