DXライブラリの残り時間表示

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DXライブラリの残り時間表示

Re: DXライブラリの残り時間表示

#5

by Watasuke » 5年前

コード:

void Timer(){
	sec = (GetNowCount() - GameStartTime)/1000;
	min = (sec/60);
	sec = sec%60;
	if(sec == 0){
		sec = 60;
		min--;
	}
	if(sec == 60 && min == TIME_MIN-1) finish();
}
これでできました!ありがとうございました!

Re: DXライブラリの残り時間表示

#4

by みけCAT » 5年前

この方法のままでいくなら、secを変える分の補正を

コード:

		if(min == 0)
			min = -1;
と特殊な場合のみするのではなく、

コード:

		min--;
と一般の場合についてするようにするのがいいでしょう。
finish()を呼ぶかの判定も、それに合わせて変えたほうがいいかもしれません。

Re: DXライブラリの残り時間表示

#3

by Watasuke » 5年前

回答ありがとうございます。
どこをどのように変えればいいのかわかりません・・・

Re: DXライブラリの残り時間表示

#2

by みけCAT » 5年前

分と秒に分けてから残り時間に変換しようとして複雑になっているようなので、
分ける前に60*TIME_MIN-secで残り時間[秒]を出して、
それを分と秒に分けて表示するのがいいと思います。

DXライブラリの残り時間表示

#1

by Watasuke » 5年前

お世話になっております。
DXライブラリでタイピングを作っているのですが、タイマー部分がうまくいきません。

コード:

#define TIME_MIN 5
#define WINDOW_X 1280
#define WINDOW_Y 960
int White = GetColor(255,255,255);

void Timer(){
	sec = (GetNowCount() - GameStartTime)/1000;
	min = (sec/60);
	sec = sec%60;
	if(sec == 0){
		sec = 60;
		if(min == 0)
			min = -1;
	}
	if(sec == 60 && min == TIME_MIN) finish();
	DrawFormatStringToHandle(
	WINDOW_X/2 - GetDrawFormatStringWidthToHandle(text,"SCORE  %03d\n TIME  %01d:%02d",Score,TIME_MIN-1 -min,60-sec)/2,
	WINDOW_Y/2+100,White,text,"SCORE  %03d\n TIME  %01d:%02d",Score,TIME_MIN-1 -min,60-sec);
}
見づらいとは思いますがこのようなコードを作っています。
制限時間TIME_MIN分(この場合は5分)で、経過時間ではなく残り時間(4:00や3:21のような)を表示したいのです。
が、これだと残り3分の時に2:00と表示されてしまい、困っています。
どのように上のコードを変えればいいのですか?

情報不足でしたら補足します。

ページトップ