https://dixq.net/g/38.html
こちらのサイトを見たりしたのですが・・・意味がよくわかりませんでした。
そのため、自分で考えてやろうとしたのですが、すぐに黒くなってしまいました。
コードは下記です。
sceneは名の通り場面。countはFPSカウンター?です。
ここでは試しに5フレームたったら1暗くする、というのをやっていました。
(丁度いい感覚があれば教えて下さい)
画面を徐々に暗くする(DxLib)
Re: 画面を徐々に暗くする(DxLib)
補足:書いたのは一部です
countは255で初期化してあります
count / 5 のところが怪しいのでご指摘お願いします
countは255で初期化してあります
count / 5 のところが怪しいのでご指摘お願いします
Re: 画面を徐々に暗くする(DxLib)
試行錯誤していたらZキーを押したら暗くはなりました!
ですが、シーンがTITLEに移りません。何が原因と考えられますか? またこのコードにも良くない書き方、もっと良い書き方があれば教えていただけると幸いです
ですが、シーンがTITLEに移りません。何が原因と考えられますか? またこのコードにも良くない書き方、もっと良い書き方があれば教えていただけると幸いです
Re: 画面を徐々に暗くする(DxLib)
最初のソースではcount /= 5 がすぐ暗くなる原因です。
シーンがTITLEに移らないのは単純な記述ミスですね。
コンパイラの警告オプションのレベルを上げれば、上記のようなコードを検出してくれますので、そうするのをおススメします。
if (scene == INTRODUCTION) {
DrawBox(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, Write, true);
if (CheckHitKey(KEY_INPUT_Z) == 1) {
count--;
#if 0
count /= 5; // 毎ループで5で割るので、countはものすごい速さで0に収束する
SetDrawBright(count, count, count);
#else
int bright = count / 5; // count から別途明るさを計算する
SetDrawBright(bright, bright, bright);
#endif
if (count == 0) {
scene = TITLE;
}
}
}