Intoweb
這次我們通過用Scratch做個(gè)時(shí)鐘來學(xué)習(xí)和掌握時(shí)間積木的用法,理解時(shí)間換算和角度換算關(guān)系。
1) 舞臺背景選擇:選取一個(gè)時(shí)鐘表盤作為背景舞臺,請通過網(wǎng)絡(luò)搜索圖片“時(shí)鐘表盤 卡通”下載一個(gè)合適的表盤,導(dǎo)入作為舞臺背景圖片(如圖1)。
2) 角色選擇:時(shí)鐘案例里面的時(shí)針、分針和秒針通過繪制角色來完成,用圓和長方形比較容易繪制,注意角色中心點(diǎn)在圓心位置,這樣指針才能正常旋轉(zhuǎn)。如圖2繪制的秒針圖案。
3) 流程設(shè)計(jì)
當(dāng)綠旗被點(diǎn)擊,時(shí)鐘案例里面的秒針、分針和時(shí)針同時(shí)運(yùn)行,呈現(xiàn)的時(shí)間與當(dāng)前電腦的時(shí)間一致。
與時(shí)間相關(guān)的積木在偵測模塊組里面,主要是和時(shí)間相關(guān)的動作,包括計(jì)時(shí)器,2000年至今的天數(shù),當(dāng)前時(shí)間的年、月、日、時(shí)、分、秒、星期等,如圖3。
每個(gè)積木具體的含義如圖4所列:
運(yùn)用與時(shí)間相關(guān)的積木,我們可以來完成時(shí)鐘程序的編寫。
1) 時(shí)鐘指針轉(zhuǎn)動角度
在編寫時(shí)鐘程序之前,需要對時(shí)鐘指針的轉(zhuǎn)動角度和方向進(jìn)行一個(gè)分析。在這里,需要結(jié)合數(shù)學(xué)中的角度知識。
我們可以將時(shí)鐘表盤看成一個(gè)圓,一周的角度就是360度。如果秒針轉(zhuǎn)動一圈,那么就是轉(zhuǎn)動了360度。由此可知:
秒針指針1秒鐘轉(zhuǎn)過360÷60=6度
以此類推,我們就可以推算出:
1分鐘分針指針轉(zhuǎn)動360÷60=6度
1小時(shí)時(shí)針指針轉(zhuǎn)動360÷12=30度
2) 指針轉(zhuǎn)動方向
時(shí)鐘指針轉(zhuǎn)動方向由它的轉(zhuǎn)動角度決定。
a. 秒針的轉(zhuǎn)動方向:
我們已經(jīng)知道了秒針指針1秒鐘轉(zhuǎn)6度,當(dāng)前時(shí)間是多少秒就要面向轉(zhuǎn)動多少個(gè)6度。所以,結(jié)合運(yùn)動模塊的“面向90度方向”和偵測模塊的“當(dāng)前的時(shí)間‘秒”,我們可以確定秒針的方向如圖5。
再加上秒針是每隔1秒轉(zhuǎn)動一下,系統(tǒng)需要一直重復(fù)檢測當(dāng)前時(shí)間。所以,秒針完整的腳本如圖6。
b. 分針的轉(zhuǎn)動方向:
1分鐘分針指針轉(zhuǎn)過6度,當(dāng)前時(shí)間是多少分就要面向轉(zhuǎn)動多少個(gè)6度。所以,結(jié)合運(yùn)動模塊的的“面向90度方向”和偵測模塊“當(dāng)前的時(shí)間‘分”,我們可以得到分針的方向是“面向‘當(dāng)前的時(shí)間分*6度方向”。但是,我們還想要將分針的轉(zhuǎn)動角度精確到每秒鐘的轉(zhuǎn)動角度,即是需要加上一秒分針的轉(zhuǎn)動角度。
分針60秒轉(zhuǎn)過6度,那么1秒就是6÷60=0.1度,即目前時(shí)間是多少秒,分針就再轉(zhuǎn)動多少個(gè)0.1度。由于要精確到間隔1秒,加上系統(tǒng)重復(fù)一直檢測當(dāng)前時(shí)間,所以,分針完整的腳本如圖7。
c. 時(shí)針的轉(zhuǎn)動方向:
時(shí)針指針轉(zhuǎn)一圈360度經(jīng)過了12小時(shí),1小時(shí)時(shí)針指針轉(zhuǎn)動30度。由于時(shí)針每秒鐘轉(zhuǎn)過的角度太小,我們只需要將時(shí)針的角度變化精確到每分鐘的轉(zhuǎn)動角度。時(shí)針每60分鐘轉(zhuǎn)過30度,那么每分鐘就轉(zhuǎn)過30÷60=0.5度,即目前時(shí)間是多少分,時(shí)針就再加多少個(gè)0.5度。由于需要精確到分,所以間隔時(shí)間就是60秒,加上系統(tǒng)要重復(fù)一直檢測當(dāng)前時(shí)間,所以,時(shí)針完整的腳本如圖8。
3) 數(shù)字時(shí)間的顯示
用連接積木把時(shí)、分、秒及冒號相連,用“思考”的方式展現(xiàn)出來就可以顯示當(dāng)前時(shí)間的數(shù)字形式了。
完成后的時(shí)鐘如圖10。