二十七歩目 続今何時?
前回のプログラムでは HSPの実行ボタンを押すたびに
その時の時間が表示されるんだったね
それじゃあおもしろくないし不便だから 繰り返しを使って
リアルタイムで時間を表示するプログラムを作ります
repeat ;繰り返しのはじめ color 255,255,255 ;描画色を白にする boxf ;画面を描画色で塗りつぶす nen=gettime(0) ;nenに年を入力 tuki=gettime(1) ;tukiに月を入力 youbi=gettime(2) ;youbiに曜日を入力 hi=gettime(3) ;hiに日付を入力 zi=gettime(4) ;ziに時間を入力 fun=gettime(5) ;funに分を入力 byou=gettime(6) ;byouに秒を入力 if youbi=0:you="日" ;youbiが0だったらyouに 日 を入力 if youbi=1:you="月" ;youbiが1だったらyouに 月 を入力 if youbi=2:you="火" ;youbiが2だったらyouに 火 を入力 if youbi=3:you="水" ;youbiが3だったらyouに 水 を入力 if youbi=4:you="木" ;youbiが4だったらyouに 木 を入力 if youbi=5:you="金" ;youbiが5だったらyouに 金 を入力 if youbi=6:you="土" ;youbiが6だったらyouに 土 を入力 pos 0,0 ;描画位置を0,0にする color 0,0,0 ;描画色を黒にする print ""+nen+"年"+tuki+"月"+hi+"日"+you+"曜日"+zi+":"+fun+"、"+byou+"秒" ;表示 wait 1 ;待つ loop ;repeatヘ戻る |
前(二十六歩)のプログラムに繰り返しをたしただけだ
まず repeat,wait 1,loop はお決まりのパターンだ 前回のプログラム(二十六歩)を
何回も繰り返すようにしたものだ
color 255,255,255 boxf |
時間の表示を繰り返すから
このプログラム(color
255,255,255 boxf)は 前に表示した時間を消すためのものだ
color 255,255,255の色(白)で描画色を指定して
boxf で描画色(つまり白)でウインドウを塗りつぶすっちゅうことや
画面を消さないと前に表示した文字と後で表示する文字がダブルからね
pos 0,0 color 0,0,0 |
これはまず pos 0,0 は 繰り返すからposで文字の位置を決めておかないと
HSPの親切な(?)性質で 繰り返すたびに 文字がだんだん下にずれてくるので
pos 0,0 で文字を表示するところを決めておくものだ
前に表示した時間はcolor
255,255,255 boxf で消してるから
文字が二重になることはない
color 0,0,0 は画面を消す時にcolor 255,255,255と言う命令を実行したので
描画色(描画色 詳しくはココ)が255,255,255(白色)になっているので
このままprintで文字を表示しても白い色になってしまい見えないので
描画色を0,0,0(黒色)にしたのだ
これでprintで表示した色は黒になる
さぁて これでいいと思ったけど・・・文字(時間)がちらつくね
どうすればいいっけ?
・・・・・・・・・ちらつきを押さえるにはredrawを使えばよかったよね
repeat ;繰り返しのはじめ redraw 2 color 255,255,255 ;描画色を白にする boxf ;画面を描画色で塗りつぶす nen=gettime(0) ;nenに年を入力 tuki=gettime(1) ;tukiに月を入力 youbi=gettime(2) ;youbiに曜日を入力 hi=gettime(3) ;hiに日付を入力 zi=gettime(4) ;ziに時間を入力 fun=gettime(5) ;funに分を入力 byou=gettime(6) ;byouに秒を入力 if youbi=0:you="日" ;youbiが0だったらyouに 日 を入力 if youbi=1:you="月" ;youbiが1だったらyouに 月 を入力 if youbi=2:you="火" ;youbiが2だったらyouに 火 を入力 if youbi=3:you="水" ;youbiが3だったらyouに 水 を入力 if youbi=4:you="木" ;youbiが4だったらyouに 木 を入力 if youbi=5:you="金" ;youbiが5だったらyouに 金 を入力 if youbi=6:you="土" ;youbiが6だったらyouに 土 を入力 pos 0,0 ;描画位置を0,0にする color 0,0,0 ;描画色を黒にする print ""+nen+"年"+tuki+"月"+hi+"日"+you+"曜日"+zi+":"+fun+"、"+byou+"秒" ;表示 wait 1 ;待つ redraw 1 loop ;repeatヘ戻る |
これでちらつきはなくなったね