資訊內(nèi)容
初識(shí)Scratch--讓火箭再飛一會(huì)
? ? ??小朋友們的玩具收納柜里不乏各種會(huì)跑的汽車(chē)、會(huì)飛的飛機(jī),但是“能發(fā)射”的火箭就比較少見(jiàn)了。和許多小朋友一樣,4歲男孩Ray是一個(gè)小航空迷,最近一直嘗試用各種積木搭建火箭和發(fā)射中心。為了滿(mǎn)足Ray想讓火箭飛起來(lái)的想法,Ray媽帶兒子第一次體驗(yàn)了Scratch編程。
? ? ? 本文適合低年級(jí)和學(xué)齡前小朋友由家長(zhǎng)陪伴實(shí)踐,也適合高年級(jí)的小朋友閱讀后獨(dú)立實(shí)踐。

? ? ? “質(zhì)子、戰(zhàn)神、長(zhǎng)征……”?一大早Ray從睡夢(mèng)中醒來(lái),興奮地給媽媽講夢(mèng)里乘坐火箭運(yùn)送的航天器到空間站的奇妙旅行。
? ? ? ?剛吃完早飯,Ray便坐到自己的“小基地”,開(kāi)始又一次用樂(lè)高積木搭空間站。
? ? ? ?空間站搭好了,Ray卻愁眉不展。
? ? ? “搭建空間站遇到什么問(wèn)題了嗎?”媽媽問(wèn)。
? ? ? “空間站搭好了,可是我需要有一個(gè)會(huì)飛的火箭把航天器送到空間站。會(huì)飛的火箭要用什么搭呢?”Ray問(wèn)。
? ? ? “想不想試試用Scratch積木組裝一個(gè)會(huì)飛的火箭?”媽媽笑著問(wèn)。
? ? ? “當(dāng)然當(dāng)然!可什么是Scratch積木?”Ray不解的問(wèn)。
? ? ? “Scratch是一種‘電子積木’,通過(guò)這種積木可以控制電腦實(shí)現(xiàn)特定的功能,解決我們遇到的問(wèn)題,或者實(shí)現(xiàn)我們想要的效果。”媽媽解釋道。
? ? ? “太好了!我可以發(fā)射火箭了!”Ray歡呼道。
? ? ? “可是怎么實(shí)現(xiàn)火箭發(fā)射的效果呢?” 高興過(guò)后,Ray意識(shí)到關(guān)鍵的問(wèn)題還不知道怎么解決。
? ? ? “火箭發(fā)射其實(shí)是火箭從地球表面到太空的一個(gè)運(yùn)動(dòng)過(guò)程。我們可以通過(guò)改變火箭的位置來(lái)實(shí)現(xiàn)火箭發(fā)射的效果。”媽媽解釋道。
? ? ? “對(duì)對(duì),火箭應(yīng)該是從地面向天上運(yùn)動(dòng)的。”Ray很高興已經(jīng)有了解決方案。
? ? ? “是的,如果要在一個(gè)平面上模擬火箭發(fā)射的話,我們需要改變火箭沿豎直方向的坐標(biāo)。在Scratch中,我們可以通過(guò)改變火箭這個(gè)角色的y坐標(biāo)來(lái)實(shí)現(xiàn)它從地面發(fā)射到太空的效果。”媽媽進(jìn)一步解釋道,雖然這個(gè)解釋對(duì)小朋友來(lái)說(shuō)難免比較困惑。
? ? ? ?看著Ray似懂非懂的表情,媽媽打開(kāi)了電腦上的Scratch軟件,說(shuō):“與其紙上談兵,不如實(shí)際操作下。”
? ? ? ?Ray好奇地坐在媽媽旁邊等待發(fā)射屬于自己的火箭。

? ? ? 打開(kāi)Scratch后,每次新建一個(gè)作品,Scratch都會(huì)添加一個(gè)默認(rèn)的角色:小貓。如果不需要這個(gè)角色,可以點(diǎn)擊右下角角色區(qū)小貓右上角的刪除按鈕將其移除,如下圖。
? ? ? 清空角色后,需要添加一個(gè)火箭的角色,此時(shí)需要點(diǎn)擊右下角角色區(qū)的添加按鈕增加一個(gè)新的角色,如下圖。
? ? ? 角色可以使用Scratch自帶的Rocketship(如下圖),也可以自己制作一個(gè)火箭圖片作為火箭的角色。Ray媽不擅長(zhǎng)p圖,這里使用Scratch自帶的Rocketship。
? ? ? ?角色準(zhǔn)備好了,接下來(lái)需要給角色設(shè)置指令,也就是給它編程。
? ? ?
?正如現(xiàn)實(shí)中的火箭發(fā)射需要等待總設(shè)計(jì)師一聲“發(fā)射”的指令火箭才會(huì)開(kāi)始發(fā)射一樣,在程序的世界里,任何一段程序的執(zhí)行也需要一個(gè)事件來(lái)觸發(fā)。這里,我們從事件類(lèi)積木中選擇積木作為程序的入口。如下圖,將積木
拖到代碼區(qū)。
? ? ?
火箭發(fā)射是一個(gè)從下向上的運(yùn)動(dòng)過(guò)程,所以可以將右上角舞臺(tái)區(qū)的火箭拖到舞臺(tái)的正下方,或者使用運(yùn)動(dòng)類(lèi)積木中的積木設(shè)置火箭的初始位置位于舞臺(tái)區(qū)正下方,如下圖。
? ? ?
?接下來(lái),就可以通過(guò)使用運(yùn)動(dòng)類(lèi)積木控制火箭在屏幕上的移動(dòng)時(shí)間和結(jié)束時(shí)的位置來(lái)模擬火箭發(fā)射的過(guò)程了。最簡(jiǎn)單的方式,讓火箭在0.1秒內(nèi)從當(dāng)前位置移動(dòng)到(0,80)。從運(yùn)動(dòng)類(lèi)積木中選取積木,將其拖到代碼區(qū),如下圖。其中移動(dòng)的時(shí)間和終點(diǎn)坐標(biāo)是可以任意設(shè)置的。(Scratch坐標(biāo)范圍:x坐標(biāo):-240~+240,y坐標(biāo):-180~+180)
? ? ? ?到這里,已經(jīng)可以體驗(yàn)火箭發(fā)射的最簡(jiǎn)單的效果了。點(diǎn)擊右上角舞臺(tái)區(qū)的綠旗按鈕試試吧!
? ? ? ?是不是已經(jīng)看到火箭“嗖”的一下飛上天的效果了?
? ? ? ?不過(guò)問(wèn)題也隨之來(lái)了,再次點(diǎn)擊綠旗按鈕,火箭紋絲不動(dòng)!這可怎么辦呢?難道這也像真實(shí)的火箭那樣發(fā)射一次就報(bào)廢嗎?
? ? ?
?別擔(dān)心,真實(shí)的火箭有一些是可以回收利用的,我們也可以給火箭增加一套恢復(fù)邏輯。如下圖,使用事件類(lèi)積木里的積木作為恢復(fù)功能的啟動(dòng)鍵,再使用運(yùn)動(dòng)類(lèi)積木里的積木
將火箭位置還原到初始狀態(tài),此時(shí)按下空格鍵,試試火箭有什么變化吧。
? ? ? ?火箭是不是妥妥的回到了等待發(fā)射時(shí)的位置?

? ? ? ?到這里,我們已經(jīng)實(shí)現(xiàn)了最基本的火箭發(fā)射和還原的功能。但顯然,這個(gè)效果還比較“簡(jiǎn)陋”。Ray小朋友已經(jīng)大叫了:“媽媽?zhuān)€沒(méi)有地球和太空呢!”
? ? ? ?接下來(lái),讓我們添加一個(gè)太空的背景吧。
? ? ? 點(diǎn)擊右下角“添加背景”按鈕選擇一個(gè)背景,這里使用了Scratch自帶的Stars背景。
? ? ? ?再使用Scratch自帶的Earth角色(也可以自制地球圖片,后面將介紹如何添加自定義角色),調(diào)整地球的大小和位置,并將火箭拖到地球的上面,整個(gè)場(chǎng)景變得更豐富了。
? ? ? “媽媽?zhuān)€有問(wèn)題!”Ray還是不太滿(mǎn)意。“火箭發(fā)射之前是沒(méi)有火的,初始狀態(tài)不對(duì)!而且火箭發(fā)射過(guò)程中下面的助推器是要脫落的!”
? ? ? ?果然!一張火箭圖片模擬發(fā)射過(guò)程還真是漏洞百出。
? ? ? ?“那你覺(jué)得我們應(yīng)該怎么解決這個(gè)問(wèn)題呢?”媽媽故意引導(dǎo)Ray來(lái)尋找解決方案。
? ? ? ?“應(yīng)該用不同的圖片。沒(méi)有火的火箭圖片,完整的有火的火箭圖片,還有助推器脫落后的火箭圖片。”Ray信心滿(mǎn)滿(mǎn)地說(shuō)。
? ? ?? 媽媽點(diǎn)點(diǎn)頭:“好,那我們來(lái)準(zhǔn)備下這幾張圖片。”
? ? ? ?Scratch有一個(gè)造型區(qū),可以針對(duì)每個(gè)角色調(diào)整它的造型,例如添加一個(gè)新的造型、去掉一個(gè)造型、或者修改某個(gè)造型。造型區(qū)左上角是這個(gè)造型的名字,可以在外觀類(lèi)積木中選擇。
? ? ? 通過(guò)修改Rocketship的現(xiàn)有造型,一組火箭發(fā)射過(guò)程中切換的造型準(zhǔn)備好了。
?“現(xiàn)在我們可以通過(guò)改變火箭的位置和造型,來(lái)實(shí)現(xiàn)更逼真的火箭發(fā)射效果了。”媽媽說(shuō)。
? ? ? ?在外觀類(lèi)積木中選取積木,并通過(guò)點(diǎn)擊該積木右邊的小三角選擇需要展示的造型,如下圖,每運(yùn)動(dòng)一段距離變換一個(gè)造型,即實(shí)現(xiàn)了助推器脫落的效果。這里需要根據(jù)火箭發(fā)射的效果調(diào)整運(yùn)動(dòng)積木的參數(shù),小朋友們可以體驗(yàn)一下調(diào)試的過(guò)程。同時(shí),當(dāng)按下空格鍵還原時(shí),除了需要還原位置,還需要還原火箭的造型。
? ? ? ?火箭發(fā)射的效果改善了,可是Ray小朋友仍然皺著眉頭:“還差一個(gè)空間站,現(xiàn)在沒(méi)有空間站和航天器對(duì)接。需要再添加一個(gè)角色!”
? ? ? ?媽媽點(diǎn)點(diǎn)頭,看來(lái),Ray已經(jīng)理解了Scratch中“角色”的含義。
? ? ? ?Scratch自帶的角色中沒(méi)有空間站,于是從網(wǎng)上找了一張空間站的圖片并新增了一個(gè)空間站的角色。鼠標(biāo)懸浮在右下方角色區(qū)的“添加角色”按鈕上,會(huì)彈出一個(gè)菜單,點(diǎn)擊菜單最上方的“上傳角色”按鈕即可上傳一張本地圖片作為一個(gè)新的角色。
? ? ? ?將空間站拖動(dòng)到適當(dāng)?shù)奈恢茫沟没鸺破髅撀浜蠛教炱骱涂臻g站正好對(duì)接上。
? ? ? ?“再看看,還有沒(méi)有什么可以改進(jìn)的地方?”媽媽問(wèn)。
? ? ? ?“有一點(diǎn),火箭還沒(méi)發(fā)射的時(shí)候,應(yīng)該顯示地球,不顯示空間站;火箭發(fā)射到太空后,應(yīng)該顯示空間站,不顯示地球。” Ray若有所思的說(shuō)。
? ? ?? “對(duì),要實(shí)現(xiàn)更真實(shí)的效果,還需要控制好時(shí)序。我們可以給地球和空間站這兩個(gè)角色加上外觀積木,控制它們?cè)谶m當(dāng)?shù)臅r(shí)候顯示和隱藏。”媽媽表示贊同。
? ? ? ?下面兩張圖分別是地球和空間站的代碼,通過(guò)延時(shí)邏輯控制了這兩個(gè)角色的顯示和隱藏,并配上了恢復(fù)邏輯。
? ? ? ?看似已經(jīng)完成了模擬火箭發(fā)射的過(guò)程,可是Ray小朋友還是若有所思:“我們應(yīng)該再增加一個(gè)倒計(jì)時(shí)的功能,火箭發(fā)射前會(huì)倒計(jì)時(shí)的。”
? ? ?
?沒(méi)問(wèn)題,讓我們?cè)僭黾訌?-5五個(gè)數(shù)字角色吧。將這些角色拖動(dòng)到要展示的位置,并通過(guò)外觀類(lèi)積木和控制類(lèi)積木設(shè)置顯示和隱藏的時(shí)機(jī),便可實(shí)現(xiàn)“5、4、3、2、1”的倒計(jì)時(shí)效果。在每個(gè)數(shù)字顯示時(shí)使用聲音類(lèi)積木中的積木增加一段音效,效果更好。
???????倒計(jì)時(shí)功能實(shí)現(xiàn)了,但是倒計(jì)時(shí)模塊和火箭發(fā)射的過(guò)程聯(lián)調(diào)時(shí)又遇到了問(wèn)題:倒計(jì)時(shí)還沒(méi)有結(jié)束,火箭已經(jīng)發(fā)射出去了,這個(gè)時(shí)序有問(wèn)題!
? ? ? ?在火箭的角色上增加一個(gè)控制類(lèi)積木延時(shí)等待5秒后再啟動(dòng)發(fā)射的過(guò)程,問(wèn)題解決了。同時(shí)還可以給火箭發(fā)射也配上一段音效,如下圖。
? ? ? ?別忘了同時(shí)修改地球和空間站的代碼,為它們的顯示和隱藏調(diào)整時(shí)機(jī)。
? ? ? ?“哦!我用電子積木實(shí)現(xiàn)了火箭發(fā)射!”Ray興奮極了。
? ? ? ?“不止是實(shí)現(xiàn)了模擬火箭發(fā)射,你還發(fā)現(xiàn)了幾個(gè)問(wèn)題并解決了這些問(wèn)題,這才是更大的收獲。”媽媽笑著說(shuō)。
? ? ? ?Ray反復(fù)操作著綠旗按鈕和空格鍵,陶醉在自己“發(fā)射的”火箭里。
? ? ? ?讓火箭再飛一會(huì)吧!

? ? ? 通過(guò)制作會(huì)飛的火箭,小朋友們可以對(duì)Scratch編程有一個(gè)初步的認(rèn)識(shí)。這種拖拽式的電子積木很適合孩子們展示自己的想法。在通過(guò)Scratch編程實(shí)現(xiàn)火箭發(fā)射的過(guò)程中,孩子們會(huì)接觸到并嘗試?yán)斫馊绾斡脭?shù)學(xué)模型抽象火箭發(fā)射的過(guò)程。對(duì)于低年級(jí)和學(xué)齡前的小朋友,這可能還僅僅是一個(gè)模糊的概念,不過(guò)沒(méi)關(guān)系,多聽(tīng)到看到一個(gè)概念也會(huì)在他們的小腦袋瓜中激起漣漪。同時(shí),在模擬火箭發(fā)射的過(guò)程中遇到的問(wèn)題,也會(huì)激發(fā)孩子們?nèi)ふ医鉀Q方案。遇到問(wèn)題、分析問(wèn)題、解決問(wèn)題,這比單純學(xué)會(huì)使用一個(gè)工具更有意義。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
吳涇社區(qū)創(chuàng)新屋SCRATCH2.0軟件編程課回顧
2019年11月16日星期六,吳涇鎮(zhèn)社區(qū)創(chuàng)新屋開(kāi)展了第三節(jié)SCRATCH2.0軟件編程課。第三節(jié)編程課的主題是賽車(chē)。 本次課程的主要目的是加深同學(xué)們對(duì)于SCRATCH編程操作的理解,讓同學(xué)們能夠利用SCRATCH編寫(xiě)出簡(jiǎn)單的游戲,并且提高同學(xué)們的創(chuàng)造力和學(xué)習(xí)能力。
- 下一篇
了解Scratch少兒編程課程!
想當(dāng)年,編程是大學(xué)才玩的東西,而且還得是計(jì)算機(jī)系的學(xué)生才學(xué)的,現(xiàn)在一陣風(fēng)刮來(lái),國(guó)內(nèi)的專(zhuān)家和機(jī)構(gòu)紛紛吶喊:中國(guó)的在科技上的被動(dòng)挨打都是因?yàn)槲覀儾粫?huì)編程!只有人人學(xué)會(huì)了編程,中國(guó)才能迎頭趕上,你看看國(guó)外......,人人都是編程大神。編程已經(jīng)進(jìn)入教學(xué)大綱了!高考也要靠編程