資訊內容
Scratch兒童編程是啥?附:入門案例詳解
作為一個“誤入歧途然后將錯就錯”的偽理工男來說,計算機編程是被大學專業逼著開始學的,接著讀研、畢業參加工作,由于工作原因(數據處理分析)不得不使用編程工具,畢竟幾句簡潔的計算機指令就能讓電腦沒日沒夜地干活,這種提高效率的工作方式,我們不用別人也會用。所以,不管喜不喜歡,中不中意,甜七爸這種普通人只能被大勢所趨的洪流裹挾著前進……
可是,不知從何時開始,身邊年輕家長們的聊天內容,除了為孩子買學區房選學校、帶孩子學鋼琴、上英語培訓班、學畫畫、學舞蹈、學圍棋、練跆拳道等等,有時還能聽到帶孩子上兒童編程培訓班之類的話題。
天哪!編程這么枯燥的玩意兒,就算是上了大學,很多人都沒興趣學(思維方式偏感性的女生更甚),更何況六、七歲的孩子?!他們這個年齡,連學算術都吃力,連母語閱讀都不怎么順溜,怎么能理解抽象枯燥的計算機語言?!。
Nothing?is?impossible!
后來,甜七爸翻看關于兒童編程的文章[1-2],游戲和Scratch這兩個關鍵詞進入我的視線范圍,讓孩子從游戲中體驗編程思維應該是個比較酷的方式,重點是這個Scratch,正好是專門為孩子們(5-14歲)開發的編程工具。
甜七爸上網搜資料學習了幾個晚上,模仿網上的例子做了幾個比較粗糙的小作品,算是嘗個鮮。各位請先看結果:
作品一:主角甜七假裝在US?Route66的連拍動畫
作品二:冒牌愛莎找安娜闖關游戲
體驗之后……
甜七的感受是:哈哈哈哈……好玩!邊玩邊傻笑!
甜七爸感受是:這工具不錯!簡單有趣入門快,想象空間大!如果腦洞夠大,可以做很多有趣的作品。在我們那個年代,能用C語言、C++語言,VB語言編制一個可視化運行程序的一般都是牛人了,非計算機專業的多數人還沒熬到入門就放棄了。從學習編程這個角度來說,現在的孩子算是幸運的,可以體驗從游戲開始,經歷充滿樂趣循序漸進的編程學習過程。
附:入門案例詳解
(一)編程工具簡介
為了方便寶爸寶媽們一起來體驗Scratch這個有趣的編程工具,甜七爸對此工具做簡要介紹:
Scratch是麻省理工學院為孩子們開發的一個免費編程工具,有網頁版(網址:http://scratch.mit.edu)、單機版和移動端APP(ScratchJr)。
圖1 截圖自Scratch官方網頁主頁
圖2 Scratch3.0網頁版工作界面
網頁版需要登錄Scratch官方網頁,注冊賬戶,學習觀摩來自全球網友創作的案例,開始創建自己的項目。從主頁上我們可以輕易了解到:Scratch可用于創建故事、游戲和動畫,然后分享給全世界的網友們。
可能是國外網站的原因,瀏覽和刷新速度比較慢,所以甜七爸在網上找了單機版Scratch2.0,工作窗口如下圖,甜七爸在工作界面的各個窗口添加了簡單注釋,來說明各個窗口的主要功能分工。
圖3 Scratch3.0單機版工作界面及注釋
(二)案例詳解
甜七爸的第一個作品是一個動畫,功能很簡單,僅有一個角色,幾行代碼就可以實現(圖片上已有注釋,甜七爸不準備以此作為案例進行詳細解說,有疑問可以后臺提問)。不過,制作該案例前,得事先準備幾張孩子的連拍照片,然后在Costumes(造型)窗口逐個修圖。
圖4 Costumes(造型)編輯窗口
圖5 作品一腳本代碼
第二個作品相對復雜,涉及多個角色,類似我們小時候在游戲機上玩的“超級瑪麗”極簡版。甜七爸準備以此作品為案例來詳細介紹Scratch程序代碼編輯過程:
1)情景亂編
關注甜七爸的朋友們應該都知道甜七給自己選的英文名叫Elsa,這是她小時候迷迪士尼動畫《Frozen》(冰雪奇緣)的結果。至今,甜七臥室的床單被套、身上的T恤、腳上的拖鞋、還有泳衣、泳圈、滑輪、玩具等物品都跟《Frozen》主題有關。
所以,甜七爸為孩子設計了一個Elsa(甜七)找Anna的闖關游戲,要找到在冰雪宮殿的Anna,Elsa需要連續成功越過障礙物(石頭)5次,否則游戲失敗,Elsa被石頭撞飛。這樣搞怪的情景應該是孩子喜歡的,結果證明甜七爸還是了解孩子的,甜七喜歡得不得了
2)游戲角色分析和編程思路
一般編輯程序代碼前都要先分析程序運行框架,形成編輯代碼的思路,以流程圖的形式描述程序運行邏輯。不過,考慮到游戲設計面向的對象是孩子,甜七爸嘗試把流程圖做得更加直觀有趣,借用現在流行用思維導圖來實現游戲設計分析,讓孩子一起參與,如下圖:
圖6 游戲設計思維導圖(各角色的場景由甜七繪制)
除背景圖片(見圖3工作界面左下部分背景加載窗口)外,該游戲情景涉及4個角色,分別是:
角色1:障礙物(石頭),出現在背景左側,向右側方向運動;
角色2:穿著斗篷和滑輪的甜七(扮演Elsa),出現在背景右側,可向上跳躍避開迎面而來的石頭;
角色1(石頭)和角色2(Elsa)之間的關系有兩種情況:第一種情況:兩者碰撞,角色2(Elsa)被撞飛,并發出慘叫,這時激發角色3(Game?over!)出現,游戲失敗,程序終止運行;第二種情況,角色2(Elsa)成功避開角色1(石頭)5次,激發角色4的出現,游戲成功,角色2(Elsa)與角色4(冰雪宮殿及Anna)相遇,完美結局。
因此,角色3(Game?over!)和角色4(冰雪宮殿及Anna)的設置如下:
角色3:游戲失敗提示(Game?over!),在被激發前,處于隱身狀態,被激發后,顯示在前臺;
角色4:冰雪宮殿及Anna,在被激發前,處于隱身狀態,被激發后,顯示在前臺;
在協調4個角色的互動過程中,還需要另外3個要素,包括:
1)為了記錄角色2(Elsa)成功避開角色1(石頭)的次數,或角色1(石頭)觸碰背景右側邊緣的次數,我們需要一個計數變量,甜七爸將他取名為count;
2)為了激發角色3(Game?over!)出現,我們需要在角色1(石頭)和角色2(Elsa)碰撞時發出信號,即message1,以便角色3(Game?over!)接收;
3)為了激發角色4(冰雪宮殿及Anna)出現,我們還需要在計數變量count達到5的時候發出信號,即message2,以便角色4(冰雪宮殿及Anna)接收。
3)程序實現
完成上述分析后,就可以在角色窗口(工作界面左下部分,見圖3注釋)分別添加4個角色了。
其中,角色1是系統自帶的,可以在角色窗口點擊添加,從角色庫中尋找,當然也可以在造型窗口(見圖4)中自行繪制;角色2是甜七爸在造型窗口導入甜七照片,稍加編輯而成,如果愿意花更多時間,美工基礎好的朋友還可以制作更為精美的作品;角色3是在造型窗口中自行編輯的;角色4取自網絡圖片,導入角色窗口即可。
接著,就可以開始在腳本編輯窗口開始編輯代碼了。
先在角色窗口選中其中一個角色(如角色1),然后在腳本編輯窗口編輯與角色1對應的代碼。針對4個角色,逐個完成代碼編輯。
角色1(石頭)的腳本代碼編輯如下:
圖7 角色1運行腳本及注釋
角色2(Elsa)的腳本代碼編輯如下:
角色1運行腳本及注釋
角色3(Game?over!)的腳本代碼編輯如下:
角色3運行腳本及注釋
角色4(冰雪宮殿及Anna)的腳本代碼編輯如下:
角色4的運行腳本及注釋
完成全部代碼編輯后,就可以點擊程序運行窗口(見圖3左上部分)右上方的小綠旗開始運行游戲了,當然也可以點擊
終止程序。
希望各位寶爸寶媽們能夠Enjoy?it!
學習過程中想交流,請添加文章末尾的微信號(添加時說明來意),或后臺留言(回復時間會比較滯后)。
最后,還是要感謝麻省理工的大牛們為孩子們開發了這么Cool的編程學習工具,讓中年大叔也可以跟著玩一把!
參考資料:
[1]?張飛,不一樣的Scratch編程課。“Alex老師的大腦洞”公眾號,2018-01-29.
[2] 理工男憨爸,寫了20年程序后,我推薦兒童變成應該這樣學。“憨爸在美國”公眾號,2018-08-08.
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
