官术网_书友最值得收藏!

二、動(dòng)手練:一個(gè)走動(dòng)的鐘表

(一)實(shí)驗(yàn)?zāi)康?/h4>

做一個(gè)走動(dòng)的鐘表,秒針每秒轉(zhuǎn)動(dòng)一格,分針每分轉(zhuǎn)動(dòng)一格,時(shí)針每小時(shí)轉(zhuǎn)動(dòng)一格。

(二)基本思路

1)鐘表的表盤是固定不變的,可以設(shè)置成背景。

2)秒針、分針、時(shí)針要走動(dòng),我們把它們定義成3個(gè)角色,通過轉(zhuǎn)換方向來實(shí)現(xiàn)走動(dòng)。

3)秒針、分針執(zhí)行“重復(fù)”操作,每秒循環(huán)一次,更改角度。因?yàn)槊脶樏?0秒走一圈,而一圈是360°,所以秒針的方向是“當(dāng)前是第幾秒÷60×360°”;分鐘每60分轉(zhuǎn)動(dòng)一圈,因此分針的方向是“當(dāng)前是第幾分÷60×360°”。

4)時(shí)針執(zhí)行“重復(fù)”操作,每分鐘循環(huán)一次,更改角度。因?yàn)闀r(shí)針12小時(shí)走一圈,所以時(shí)針的方向是“當(dāng)前是第幾小時(shí)÷12×360°”。不過這樣時(shí)針每小時(shí)才更新一次,走得“咯噔咯噔”的。為了更順暢一些,我們每分鐘更新一下時(shí)針的角度,把方向變成“當(dāng)前是第幾小時(shí)÷12×360°+當(dāng)前是第幾分÷60×30°”。

5)當(dāng)前的時(shí)間可以用“偵測(cè)”里的“當(dāng)前時(shí)間的秒”等來獲得。

(三)編程步驟

(1)背景繪制

Scratch系統(tǒng)沒有鐘表表盤,我們只好自己繪制了。我們把鼠標(biāo)放在背景設(shè)置區(qū)右下角的048-1上,然后在彈出的菜單條里選擇畫筆048-2,即可開始繪制背景。

我們畫一個(gè)圓圈表示表盤,然后在圓圈上標(biāo)上1,2,3,…,12各個(gè)數(shù)。注意,背景繪制區(qū)中有一個(gè)帶十字的圈圈048-3,表示繪制區(qū)的中心;我們一定得保證圓圈的圓心在這個(gè)中心,如圖2-7所示。

048-4

圖2-7 “走動(dòng)的鐘表”實(shí)驗(yàn)里在背景區(qū)繪制表盤

(2)角色繪制

Scratch系統(tǒng)也沒有現(xiàn)成的秒針、分針和時(shí)針,需要自己繪制。我們把鼠標(biāo)放在角色設(shè)置區(qū)右下角的048-5上,然后在彈出的菜單條里選擇畫筆048-6,即可開始繪制角色了。

我們畫一條紅色細(xì)橫線表示秒針。注意:一定要以角色繪制區(qū)里的十字線為起點(diǎn)開始畫;這個(gè)點(diǎn)是角色的“中心點(diǎn)”,角色旋轉(zhuǎn)時(shí)是圍繞這個(gè)中心點(diǎn)旋轉(zhuǎn)的。分針和時(shí)針的繪制方法與此類似。

卜老師提示我們,Scratch2.0版本中可以指定角色的“中心點(diǎn)”,而在Scratch 3.0中,以十字線作為所繪制角色的中心點(diǎn)。

(3)角色的腳本

現(xiàn)在我們有三個(gè)角色,下面得為每個(gè)角色單獨(dú)寫一個(gè)腳本(見圖2-8)。

049-1

圖2-8 秒針的腳本(左)和分針的腳本(右)

在這里,我們讓秒針角色執(zhí)行“移到最前面”,讓時(shí)針角色執(zhí)行“移到最后面”,這樣秒針就不會(huì)被時(shí)針擋住啦!這里我們使用了“重復(fù)執(zhí)行”積木,后面我們會(huì)詳細(xì)介紹。

(四)實(shí)驗(yàn)結(jié)果

現(xiàn)在我們點(diǎn)擊一下綠旗,就能看到一個(gè)精美的鐘表啦!圖2-9是我的程序畫出的時(shí)鐘,秒針每秒走一格,很好看吧!

049-2

圖2-9 時(shí)針的腳本(左)和實(shí)驗(yàn)結(jié)果(右)

(五)遇到的bug及改正過程

bug:一開始我們畫秒針時(shí),沒從十字線中心開始畫,結(jié)果秒針旋轉(zhuǎn)時(shí),是“偏心旋轉(zhuǎn)”,很不好看。

改正:后來改成從十字線中心開始畫,就好了。

(六)思考與延伸

倒著走的時(shí)鐘怎么寫程序呢?

主站蜘蛛池模板: 海伦市| 德保县| 麻江县| 武强县| 泰州市| 高密市| 澜沧| 梁平县| 涿鹿县| 邵武市| 会理县| 乌拉特中旗| 平顺县| 上犹县| 沙雅县| 闻喜县| 蓝山县| 延长县| 江都市| 封开县| 甘谷县| 阳东县| 三穗县| 蒲江县| 泾源县| 论坛| 凤台县| 石狮市| 青田县| 荆州市| 弋阳县| 泰顺县| 克拉玛依市| 漳平市| 长宁区| 馆陶县| 伊川县| 湖北省| 满洲里市| 宜川县| 公主岭市|