カウントダウンタイマ
//残りの分数をボタンで指定して,あとはカウントダウンし続けるタイマです.
//小ワザ/ストップウォッチ(http://hspdev-wiki.net/?%BE%AE%A5%EF%A5%B6%2F%A5%B9%A5%C8%A5%C3%A5%D7%A5%A6%A5%A9%A5%C3%A5%C1)
//のページにある mod_counttimer.hsp というファイルをインクルードする必要があります.
//フォントサイズやボタンサイズは,画面が1024*768の場合に見やすくしてあります.
//============================================
// 前準備
#include "mod_counttimer.hsp"
make_timer timer, 0
resume_count timer
bgscr 0, ginfo(20), ginfo(21), , 0, 0
font "" , 293
//============================================
// ボタン設置
buttonY = ginfo(7)-100
buttonW = 250
buttonH = 73
gap = (ginfo(20) - buttonW*3) / 4;ボタン同士の間を何ピクセル開けるか
objsize buttonW, buttonH;今後作るbuttonの大きさを設定
pos gap, buttonY
button gosub "3分", *time3
pos gap*2 + buttonW, buttonY
button gosub "4分", *time4
pos gap*3 + buttonW*2, buttonY
button gosub "5分", *time5
setSec = 60 * 3
repeat;メインループ開始
pos 0, 0
redraw 0
if(viewSec < 0){
color 255,255,255
}
else{
color 255,255,255
}
boxf
DrawTimer
redraw 1
await 1
loop;メインループおわり
//====================================================
// これ以降は関数
//====================================================
// 残り時間計算と表示を担当する
#deffunc DrawTimer
color 0
pos 0, 200
get_count timer;時刻更新
passedSec = 0.001 * refdval;経過秒数.refdvalにミリ秒がが入っているので秒にしている.
leftSec = setSec - passedSec;残り秒数
timeStr = "" + (leftSec / 60) + "分" + strf("%02d", leftSec \ 60) + "秒"
mes timeStr
return
//====================================================
// ボタンを押したら残り時間をセットして再スタートする
*time3
RestartTimer 3*60
return
*time4
RestartTimer 4*60
return
*time5
RestartTimer 5*60
return
//====================================================
// 引数で秒数をもらい,再スタートする
#deffunc RestartTimer int myN
setSec = myN;残り秒数をセットする
reset_count timer
return