カウントダウンタイマ

//残りの分数をボタンで指定して,あとはカウントダウンし続けるタイマです.

//小ワザ/ストップウォッチ(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