Little Stopwatch / Timer by Anonymous Coder23rd Nov 2004 7:32
|
---|
Summary A handy stopwatch / timer. It is mouse controlled and has an audible alarm when time runs out. Standard "flat 2D" buttons also report with an audible verification when cl Description Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com Rem * Title : STOPWATCH / TIMER Rem * Author : TIMOTHY J. SAUNDERS Rem * Date : APRIL 2004 REM Created by Timothy J. Saunders REM April of 2004 REM A stop watch / timer that can be used to aid in REM cooking, testing, racing...etc REM Features countdown alarm and windowing REM v.1.5 WAIT 1000 SYNC ON : SYNC RATE 0 SET WINDOW ON SET WINDOW TITLE "SWtimer" SET WINDOW LAYOUT 1,1,0 SET WINDOW SIZE 170,110 SET WINDOW POSITION 2,460 ALWAYS ACTIVE ON LOAD SOUND "select.wav",1 LOAD SOUND "scifi1.wav",2 SET TEXT FONT "arial" RED=RGB(255,0,0) YELLOW=RGB(255,200,0) GREEN=RGB(0,255,0) BLUE=RGB(0,150,255) BLACK=RGB(0,0,0) WHITE=RGB(255,255,255) GRAY=RGB(100,100,100) REM MODE SELECTION MENU: SET TEXT SIZE 20 SYNC : CLS INK RED,BLACK BOX 260,220,380,235 INK GREEN,BLACK BOX 260,245,380,260 INK BLACK,BLACK SET TEXT TO BOLD CENTER TEXT 320,220,"STOPWATCH" CENTER TEXT 320,245,"TIMER" SET TEXT TO NORMAL INK WHITE,BLACK CENTER TEXT 320,200,"select mode" SET TEXT SIZE 16 CENTER TEXT 320,265,"press 'esc' to kill program" REDOSM: REPEAT MX=MOUSEX() : MY=MOUSEY() SYNC UNTIL MOUSECLICK()=1 IF MX<381 AND MX>259 IF MY<236 AND MY>219 PLAY SOUND 1 REPEAT : SYNC : UNTIL MOUSECLICK()=0 : GOTO STOPWATCH ENDIF IF MY<261 AND MY>244 PLAY SOUND 1 REPEAT : SYNC : UNTIL MOUSECLICK()=0 : GOTO TIMER ENDIF ENDIF GOTO REDOSM REM STOPWATCH MODE STOPWATCH: SYNC : CLS LAP=0 : TF=0 : TFF=0 : MS=0 : SS=0 : MM=0 : HH=0 : RUN=0 DO INK BLUE,BLACK CENTER TEXT 320,215,"hh : mm : ss : mss" TEXT 240,230,"run" IF LAP=1 INK BLUE,BLACK TEXT 240,245,"lap" TEXT 240,260,"dif" INK WHITE,BLACK SET CURSOR 265,245 IF HHL<10 PRINT "0",HHL; ELSE PRINT HHL; ENDIF PRINT " : "; IF MML<10 PRINT "0",MML; ELSE PRINT MML; ENDIF PRINT " : "; IF SSL<10 PRINT "0",SSL; ELSE PRINT SSL; ENDIF PRINT " : "; IF MSL<100 IF MSL>9 THEN PRINT "0",MSL IF MSL<10 THEN PRINT "00",MSL ELSE PRINT MSL ENDIF SET CURSOR 265,260 IF HHD<10 PRINT "0",HHD; ELSE PRINT HHD; ENDIF PRINT " : "; IF MMD<10 PRINT "0",MMD; ELSE PRINT MMD; ENDIF PRINT " : "; IF SSD<10 PRINT "0",SSD; ELSE PRINT SSD; ENDIF PRINT " : "; MSD=ABS(MS-MSL) IF MSD<100 IF MSD>9 THEN PRINT "0",MSD IF MSD<10 THEN PRINT "00",MSD ELSE PRINT MSD ENDIF ENDIF INK WHITE,BLACK SET CURSOR 265,230 IF HH<10 PRINT "0",HH; ELSE PRINT HH; ENDIF PRINT " : "; IF MM<10 PRINT "0",MM; ELSE PRINT MM; ENDIF PRINT " : "; IF SS<10 PRINT "0",SS; ELSE PRINT SS; ENDIF PRINT " : "; IF MS<100 IF MS>9 THEN PRINT "0",MS IF MS<10 THEN PRINT "00",MS ELSE PRINT MS ENDIF SET TEXT TO BOLD IF RUN=0 INK GREEN,BLACK : BOX 240,195,290,210 INK BLACK,BLACK : CENTER TEXT 265,195,"GO" ELSE INK RED,BLACK : BOX 240,195,290,210 INK BLACK,BLACK : CENTER TEXT 265,195,"STOP" ENDIF INK GREEN,BLACK : BOX 295,195,345,210 INK BLACK,BLACK : CENTER TEXT 320,195,"LAP" IF LAP=1 AND RUN=1 COLORR=RND(200) : COLORG=RND(200) : COLORB=RND(200) COLOR=RGB(COLORR,COLORG,COLORB) INK COLOR,BLACK : CENTER TEXT 320,195,"LAP" ENDIF INK BLUE,BLACK : BOX 350,195,400,210 INK BLACK,BLACK : CENTER TEXT 375,195,"RESET" INK GRAY,BLACK : BOX 380,223,400,273 INK BLACK,BLACK : CENTER TEXT 390,223,"M" CENTER TEXT 390,235,"O" : CENTER TEXT 390,247,"D" : CENTER TEXT 390,259,"E" IF RUN>0 THEN INK YELLOW,BLACK : LINE 380,223,400,273 : LINE 400,223,380,273 SET TEXT TO NORMAL INK WHITE,BLACK : CENTER TEXT 320,275,"press 'esc' to kill program" IF RUN>0 TT$=STR$(TIMER()) TD$=RIGHT$(TT$,4) TF$=LEFT$(TD$,1) TF=VAL(TF$) MS$=RIGHT$(TD$,3) MS=VAL(MS$) IF TF<>TFF THEN TFF=TF : SS=SS+1 : SSD=SSD+1 IF SS>59 THEN SS=0 : MM=MM+1 IF SSD>59 THEN SSD=0 : MMD=MMD+1 IF MM>59 THEN MM=0 : HH=HH+1 IF MMD>59 THEN MMD=0 : HHD=HHD+1 ELSE TT$=STR$(TIMER()) TD$=RIGHT$(TT$,4) TF$=LEFT$(TD$,1) TF=VAL(TF$) TFF=TF ENDIF MX=MOUSEX() : MY=MOUSEY() IF MOUSECLICK()=1 IF MY<211 AND MY>194 IF MX<291 AND MX>239 PLAY SOUND 1 IF RUN=0 THEN RUN=1 : GOTO DELAY IF RUN=1 THEN RUN=0 : GOTO DELAY DELAY: REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<346 AND MX>294 PLAY SOUND 1 : LAP=1 HHL=HH : MML=MM : SSL=SS : MSL=MS HHD=0 : MMD=0 : SSD=0 : MSD=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<401 AND MX>349 PLAY SOUND 1 HH=0 : MM=0 : SS=0 : MS=0 : RUN=0 : LAP=0 : TF=0 : TFF=0 HHL=0 : MML=0 : SSL=0 : MSL=0 HHD=0 : MMD=0 : SSD=0 : MSD=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF ENDIF IF MY<274 AND MY>222 AND RUN=0 IF MX<401 AND MX>379 PLAY SOUND 1 REPEAT : SYNC : UNTIL MOUSECLICK()=0 GOTO MENU ENDIF ENDIF ENDIF REM to check for cursor positioning, un-rem the following line REM INK WHITE,BLACK : SET CURSOR 320,205 : PRINT MX,"-",MY SYNC : CLS LOOP REM TIMER MODE TIMER: SYNC : CLS RUN=0 : TF=0 : TFF=0 : HH=0 : MM=0 : SS=0 : MS=0 DO INK BLUE,BLACK TEXT 265,210,"hh : mm : ss" INK WHITE,BLACK SET CURSOR 265,240 IF HH<10 PRINT "0",HH; ELSE PRINT HH; ENDIF PRINT " : "; IF MM<10 PRINT "0",MM; ELSE PRINT MM; ENDIF PRINT " : "; IF SS<10 PRINT "0",SS; ELSE PRINT SS; ENDIF IF RUN>0 TT$=STR$(TIMER()) TD$=RIGHT$(TT$,4) TF$=LEFT$(TD$,1) TF=VAL(TF$) IF TF<>TFF TFF=TF IF HH>0 OR MM>0 OR SS>0 THEN SS=SS-1 ENDIF IF SS<0 IF MM>0 OR HH>0 THEN SS=59 : MM=MM-1 ENDIF IF MM<0 AND HH>0 THEN MM=59 : HH=HH-1 IF HH<0 THEN HH=0 COLORR=RND(200) : COLORG=RND(200) : COLORB=RND(200) COLOR=RGB(COLORR,COLORG,COLORB) INK COLOR,BLACK : ELLIPSE 301,248,52,18 ENDIF IF HH=0 AND MM=0 AND SS=0 AND RUN>0 IF SOUND LOOPING(2)=0 THEN LOOP SOUND 2 ELSE IF SOUND LOOPING(2)=1 THEN STOP SOUND 2 ENDIF MX=MOUSEX() : MY=MOUSEY() SET TEXT TO BOLD IF RUN=0 INK GREEN,BLACK : BOX 240,195,290,210 INK BLACK,BLACK : CENTER TEXT 265,195,"GO" ELSE INK RED,BLACK : BOX 240,195,290,210 INK BLACK,BLACK : CENTER TEXT 265,195,"STOP" ENDIF INK BLUE,BLACK : BOX 350,195,400,210 INK BLACK,BLACK : CENTER TEXT 375,195,"RESET" INK GRAY,BLACK : BOX 380,223,400,273 INK BLACK,BLACK : CENTER TEXT 390,223,"M" CENTER TEXT 390,235,"O" : CENTER TEXT 390,247,"D" : CENTER TEXT 390,259,"E" IF RUN>0 THEN INK YELLOW,BLACK : LINE 380,223,400,273 : LINE 400,223,380,273 SET TEXT TO NORMAL INK WHITE,BLACK : CENTER TEXT 320,275,"press 'esc' to kill program" IF MOUSECLICK()=1 IF MY<211 AND MY>194 IF MX<291 AND MX>239 PLAY SOUND 1 IF RUN=0 THEN RUN=1 : GOTO DELAY2 IF RUN=1 THEN RUN=0 : GOTO DELAY2 DELAY2: REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<401 AND MX>349 PLAY SOUND 1 HH=0 : MM=0 : SS=0 : RUN=0 : TF=0 : TFF=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF ENDIF IF MY<274 AND MY>222 AND RUN=0 IF MX<401 AND MX>379 PLAY SOUND 1 REPEAT : SYNC : UNTIL MOUSECLICK()=0 IF SOUND LOOPING(2)=1 THEN STOP SOUND 2 GOTO MENU ENDIF ENDIF ENDIF IF RUN=0 SET TEXT TO BOLD SET TEXT SIZE 20 INK GREEN,BLACK BOX 265,228,280,238 BOX 293,228,308,238 BOX 321,228,336,238 BOX 265,257,280,267 BOX 293,257,308,267 BOX 321,257,336,267 INK BLACK,BLACK CENTER TEXT 273,225,"+" CENTER TEXT 301,225,"+" CENTER TEXT 329,225,"+" CENTER TEXT 273,252,"-" CENTER TEXT 301,252,"-" CENTER TEXT 329,252,"-" SET TEXT SIZE 16 SET TEXT TO NORMAL IF MOUSECLICK()=1 IF MY<239 AND MY>227 IF MX<281 AND MX>264 PLAY SOUND 1 HH=HH+1 IF HH>99 THEN HH=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<309 AND MX>292 PLAY SOUND 1 MM=MM+1 IF MM>59 THEN MM=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<337 AND MX>320 PLAY SOUND 1 SS=SS+1 IF SS>59 THEN SS=0 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF ENDIF IF MY<268 AND MY>256 IF MX<281 AND MX>264 PLAY SOUND 1 HH=HH-1 IF HH<0 THEN HH=99 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<309 AND MX>292 PLAY SOUND 1 MM=MM-1 IF MM<0 THEN MM=59 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF IF MX<337 AND MX>320 PLAY SOUND 1 SS=SS-1 IF SS<0 THEN SS=59 REPEAT : SYNC : UNTIL MOUSECLICK()=0 ENDIF ENDIF ENDIF ENDIF REM to check for cursor positioning, un-rem the following line REM INK WHITE,BLACK : SET CURSOR 320,205 : PRINT MX,"-",MY SYNC : CLS LOOP END |