二十七歩目 続今何時?

 
     前回のプログラムでは 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ヘ戻る

 
     これでちらつきはなくなったね
 

戻る コウザへ ホームへ 次へ