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

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

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

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

? ? ? 通過制作會飛的火箭,小朋友們可以對Scratch編程有一個初步的認識。這種拖拽式的電子積木很適合孩子們展示自己的想法。在通過Scratch編程實現火箭發射的過程中,孩子們會接觸到并嘗試理解如何用數學模型抽象火箭發射的過程。對于低年級和學齡前的小朋友,這可能還僅僅是一個模糊的概念,不過沒關系,多聽到看到一個概念也會在他們的小腦袋瓜中激起漣漪。同時,在模擬火箭發射的過程中遇到的問題,也會激發孩子們去尋找解決方案。遇到問題、分析問題、解決問題,這比單純學會使用一個工具更有意義。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

- 上一篇
吳涇社區創新屋SCRATCH2.0軟件編程課回顧
2019年11月16日星期六,吳涇鎮社區創新屋開展了第三節SCRATCH2.0軟件編程課。第三節編程課的主題是賽車。 本次課程的主要目的是加深同學們對于SCRATCH編程操作的理解,讓同學們能夠利用SCRATCH編寫出簡單的游戲,并且提高同學們的創造力和學習能力。
- 下一篇
了解Scratch少兒編程課程!
想當年,編程是大學才玩的東西,而且還得是計算機系的學生才學的,現在一陣風刮來,國內的專家和機構紛紛吶喊:中國的在科技上的被動挨打都是因為我們不會編程!只有人人學會了編程,中國才能迎頭趕上,你看看國外......,人人都是編程大神。編程已經進入教學大綱了!高考也要靠編程