Re: 敵のHPが0以下になったら徐々に敵の画像を薄くしたい。 ( No.1 ) |
- 名前:sereparu 日時:2020/04/10 22:05
とりあえず、三つ目に関しては、SetDrawBlendMode が敵画像のみではなく
背景の画像にまで適用されてしまっているのだと思います。
(SetDrawBlendMode は一度設定すると全ての画像に適用されます)
なので、背景画像を描画する直前に
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
を実行してブレンドモードをリセットすれば良いと思います。
SetDrawBlendMode のリファレンスのサンプルを参考にしてください。
一つ目、二つ目はプログラムのどの部分か分からないので
すみませんが自力で解決してください。
(他人が書いたプログラム全体を細かく読むのは慣れていないので)
|
Re: 敵のHPが0以下になったら徐々に敵の画像を薄くしたい。 ( No.2 ) |
- 名前:sereparu 日時:2020/04/11 01:57
すみません。先ほどの書き込みを少し訂正します。
先ほどの「背景画像」というのは、薄くしたい敵の画像以外のすべての画像のことです。
(SetDrawBlendMode のサンプルを見ている内に、言葉が混ざってしまいました)
また、三つ目の修正方法も訂正します。
以下のように、薄くしたい敵の画像を描画する直前に「SetDrawBlendMode(DX_BLENDMODE_ALPHA…」を実行して
敵の画像を描画した直後に「SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);」を実行して
ブレンドモードをリセットすれば、その他の画像は薄くならないようになると思います。
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255 - toumeika); //ブレンドモードをα(128/255)に設定
DrawExtendGraph(pos[enemyY][enemyX][0] - 14, pos[enemyY][enemyX][1] - 66, pos[enemyY][enemyX][0] + 64, pos[enemyY][enemyX][1] + 66, enemyGHandle[11], TRUE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); //ブレンドモードをリセット(他の画像が薄くならないようにするため)
|
Re: 敵のHPが0以下になったら徐々に敵の画像を薄くしたい。 ( No.3 ) |
- 名前:マーク42 日時:2020/04/12 19:27
返信のコメント遅くなりすいません。
sereparuさんから頂いたプログラムを
if (mark == 0 && enemyHP < 1) {
++toumeika;
enemystayhere = 1;
if(toumeika >0){
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255 - 2*toumeika); //ブレンドモードをα(128/255)に設定
DrawExtendGraph(pos[enemyY][enemyX][0] - 14, pos[enemyY][enemyX][1] - 66, pos[enemyY][enemyX][0] + 64, pos[enemyY][enemyX][1] + 66, enemyImage, TRUE);
}
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); //ブレンドモードをリセット(他の画像が薄くならないようにするため) SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255 - toumeika); //ブレンドモードをα(128/255)に設定
}
のように条件付きで書き直したところうまくいきました。
その書き方でフリーのgifの動画も透明化することができました!
どうもありがとうございます!
以下は全体のプログラムです。
39.gigafile.nu/0419-d2ae6777c01b6e2bb012684ec891c99ad
|
|