「ゲームプログラミング/RPG」の版間の差分

削除された内容 追加された内容
半透明レイヤーの問題の解決策。隠される側の画像のコードに、半透明処理を書く必要がある。
843 行
:または、(win32 API やGDI + だけのプログラミングをあきらめて) Direct X を使うなど、
いろいろと対策しましょう。
 
 
 
855 ⟶ 854行目:
 
そして、半透明レイヤーで演算したあとに、最後に裏画面を本画面に転写すればいいのです。
 
 
さて、フラグ変数の切り替えのコードを置く位置については、戦闘モードのコードの最初にフラグ変数をオン(1)にするコードを書いて、マップ移動モードの最初にフラグ変数をオフ(0)にするコードを書けばいいのです。
 
フラグによる方式は、初心者には「回りくどい」と感じるかもしれませんが、しかし利点として、重複してレイヤーを重ねてしまうミスを防ぐという利点もあります。
 
「レイヤーの重複ミス」とは、たとえば半透明レイヤー1枚で明度を半分にしたい場合、もしミスでレイヤーを2回重ねてしまうと、半分ではなく4分の1の明度になってしまうような現象です。上述の隠されるマップ側にレイヤー処理のコードと、フラグ方式をあわせることで、レイヤー重複ミスを未然に防止できます。
 
なので、ぜひ、このフラグ管理によるレイヤー合成のテクニックを覚えましょう。
 
一方、フラグ管理の方式でないと、レイヤー重複ミスをしがちです。しました(実体験)。ボタンを押すたびに背景画面がドンドン暗くなるバグとか、フラグ管理でない方式だと、やりがちです。でした(実体験)。