SetDrawBrightの利用法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
土門

SetDrawBrightの利用法

#1

投稿記事 by 土門 » 12年前

相談させて下さい。
二種類の画像を個別に描画するとして、
その片方だけにSetDrawBrightの影響を与えて、
もう片方の画像には影響を与えないようにする、といった場合
影響を与えたくない方のDrawGraphの手前に
SetDrawBright(255, 255, 255);をおいてやる方法しかないのですか?

自分のイメージでは

コード:

Draw(){
   //こちらは変化させたい
      SetDrawBright(i, i, i);
      DrawGraph(0,0,Aハンドル,false);←A画像
   
   //こちらは変化させない
   DrawGraph(0,0,Bハンドル,false);←B画像 ※B画像は必ずA画像より手前に描画
}
な感じでいけるかなと思ったんですが、
このままだとB画像まで変化させてしまいました。

なので、自分はB画像の手前に
SetDrawBright(255, 255, 255);をおいているのですが、
なんか毎回これをしなきゃならないのかな?と違和感があります。

もっと簡単に、たとえば、変化させたい画像だけをピンポイントに
SetDrawBrightで変化させる書き方ってありますか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: SetDrawBrightの利用法

#2

投稿記事 by みけCAT » 12年前

例えば、初期化処理で

コード:

int Aハンドル_2;

int sx,sy;
int ds=GetDrawScreen();
GetGraphSize(Aハンドル,&sx,&sy);
Aハンドル_2=MakeScreen(sx,sy,TRUE);
SetDrawScreen(Aハンドル_2);
SetDrawBright(i,i,i);
DrawGraph(0,0,Aハンドル,TRUE);
SetDrawBright(255,255,255);
SetDrawScreen(ds);
として、
提示されたDraw()の中でAハンドルの代わりにAハンドル_2を使用したらどうですか?(未検証です)

【追記】
iが変動するとしたら、あまりよくない方法ですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: SetDrawBrightの利用法

#3

投稿記事 by softya(ソフト屋) » 12年前

こういう恒久的にパラメータ変化させる関数は必ず自分で戻す必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

土門

Re: SetDrawBrightの利用法

#4

投稿記事 by 土門 » 12年前

みけCATさん
ありがとうございます。
ただ、正直自分の書いたものより手間の増える方法ですよね。
いくつもの画像をフェードアウト、フェードインをする場合の話ですので。。

副管理人さん
やはりSetDrawBrightは、個別は無理で
描画中のすべての画像に影響を与えるんですね。
了解です。


不細工ですが、自分のこの方法でいきたいと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: SetDrawBrightの利用法

#5

投稿記事 by softya(ソフト屋) » 12年前

土門 さんが書きました:みけCATさん
ありがとうございます。
ただ、正直自分の書いたものより手間の増える方法ですよね。
いくつもの画像をフェードアウト、フェードインをする場合の話ですので。。

副管理人さん
やはりSetDrawBrightは、個別は無理で
描画中のすべての画像に影響を与えるんですね。
了解です。


不細工ですが、自分のこの方法でいきたいと思います。
出来れば考え方として変えたら戻すとした方がバグがなくなります。
つまり不要となったらすぐに戻すのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: SetDrawBrightの利用法

#6

投稿記事 by ISLe » 12年前

SetDrawBrightのパラメータをスタックするユーティリティクラスを作成すると便利かもしれません。

閉鎖

“C言語何でも質問掲示板” へ戻る