描画輝度関数について

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

描画輝度関数について

#1

投稿記事 by papa » 15年前

はじめまして。初めて質問させていただきます。
私は現在ゲームプログラミングの館の入門編を順に進めております。
入門編の第9節の「輝度をセットする」で使用したSetDrawBright関数について教えていただきたいです。

SetDrawBright ( 255 , 255 , 255 ) ; //元の明るさにセット
LoadGraphScreen( 0 , 0 , "graph/char.png" , TRUE ) ;//画像を表示。

SetDrawBright ( 255 , 0 , 0 ) ; //赤以外の明るさを0にセット
LoadGraphScreen( 200 , 0 , "graph/char.png" , TRUE ) ;//画像を表示。

SetDrawBright ( 128 , 128 , 128 ) ; //明るさを半分にセット
LoadGraphScreen( 400 , 0 , "graph/char.png" , TRUE ) ;//画像を表示。

サンプルプログラムは↑のようになっていましたが、SetDrawBright は次の行で挿入される図の輝度を
調整する関数と理解してよいのでしょうか?

また、第8節の「時間を取得する」のサンプルプログラムのfor文には{}は不要なのでしょうか?

開発環境はゲームプログラミングの館の解説どおりのものを使用しております。
初心者の初歩的な質問に答えるのも億劫だと思いますが、ご教授お願いいたします。

jay

Re:描画輝度関数について

#2

投稿記事 by jay » 15年前

SetDrawBright関数とは、簡単に説明するならば
”次にSetDrawBright関数で輝度を調整するまでの画像全ての輝度を調整する関数”です。
つまり同じ輝度で画像を何度も描画するときは、わざわざ何度も調整しなくてもいいということです。
逆に言うと一度でも宣言してしまうと、もう一度宣言し直すまで輝度はずっと同じですから注意してください。


ちなみに
SetDrawBright ( 255 , 0 , 0 ) ;
にそれぞれに設定されている値は左から’R’’G’’B’
つまり”レッド””グリーン””ブルー”と光の三原色の強さを表しています。
それぞれの光の強さを調整するものだと思って下さい。
最大値は”255”、最小値は”0”です


for文に関してですが、
通常for文は”{}”でくくられた部分だけを繰り返します。
しかし”{}”は省くこともできます。
”{}”を省いた場合はfor文の次の文だけを、今回の場合は

for(i=0;i<100000;i++) //10万回a++;を実行
a++;

なのでa++を100000回繰り返すことになります。
これを”{}”をつけて下のように書いた場合、結果は全く同じになります。

for(i=0;i<100000;i++)//10万回a++;を実行
{
a++;
}


”{}”を省いた場合は”for文”の次の一文だけを繰り返すので注意して下さい。 画像

papa

Re:描画輝度関数について

#3

投稿記事 by papa » 15年前

早速のご回答ありがとうございます。
jayさんのご解説で理解することができました。
これで安心して次の節に進むことができそうです。

お世話になりました。

閉鎖

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