#5
by 参照魚 » 3年前
最初のソースではcount /= 5 がすぐ暗くなる原因です。
コード:
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;
}
}
}
シーンがTITLEに移らないのは単純な記述ミスですね。
コード:
#if 0
if (count == 0) scene; // 文法上エラーではないが、とくに何もしないコード
#else
if (count == 0) scene = TITLE;
#endif
コンパイラの警告オプションのレベルを上げれば、上記のようなコードを検出してくれますので、そうするのをおススメします。
最初のソースではcount /= 5 がすぐ暗くなる原因です。
[code]
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;
}
}
}
[/code]
シーンがTITLEに移らないのは単純な記述ミスですね。
[code]
#if 0
if (count == 0) scene; // 文法上エラーではないが、とくに何もしないコード
#else
if (count == 0) scene = TITLE;
#endif
[/code]
コンパイラの警告オプションのレベルを上げれば、上記のようなコードを検出してくれますので、そうするのをおススメします。