資訊內容
Scratch編程之旅(2)---第一個作品
? ? ? ?今天我們要用Scratch編出第一個作品啦!
?????? 在開始之前,我們先來了解一個重要概念,那就是---“事件”。
?????? 我們平時會遇到各種各樣的事件,有些是意料中的,有的是意料之外的,而每個事件的發生,都會引發你做出一些后續動作。
?????? 舉個例子說明一下:
?????? 比如你作為一個少俠,本來好好的在家里苦練絕世武功,這時突然有人從窗戶扔進一把飛刀,以迅雷不及掩耳盜鈴之勢扎在了你家電視上,飛刀上帶了一個小紙條,打開一看上面寫到:
?????? “華山論劍于今晚8點開始,速速前去!”
?????? 你看到后倒吸一口涼氣:我初入江湖,行事極為低調,可是他們還是發現了我會絕世武功這個秘密,好吧!看來沒有必要再隱藏我的實力了。于是你馬上拿起包袱,奪門而去。。。
?????? 大家注意,這個“飛刀傳書”就是一個“事件”,而收到這個事件后,你“拿起包袱”以及“奪門而去”,就是這個事件引發的你的動作。
?????? 我們編的程序,它并不知道自已該什么時候開始運行,需要我們通知它。在編程序的語言里,通知程序開始執行,就是依靠“事件”,事件的觸發,就是我們程序執行的入口。
?????? 有的少俠告訴我,在線的Scratch太慢不好用,所以為師給你們做了一個本地版本(名字叫QRobot少兒編程軟件,放心他跟Scratch一樣,放心用吧),可以直接在電腦上用,不需要聯網也可以用,下載地址如下,安裝很容易就不說了:
?????? https://pan.baidu.com/s/1qZEs1CK
?????? 請諸位打開軟件,在“腳本”里面,我們可以看到“事件”這個積木塊類型,請點擊它。
?????? (現在開始,我們把腳本里面所有的小塊塊都稱為積木塊,相同屬性的積木塊都歸到一個積木塊類型里面,比如“事件”,“動作”等都是一個個積木塊類型。)
?????? 從這個圖可以看到,“事件”這個積木塊類型里面,有各種各樣的積木塊,他們大多數都代表一個“事件”的發生,有的是代表主動去觸發一個事件。
?????? 我們拿第一個來講解一下:
?????? 這個積木塊表示當綠色旗子被點擊的事件發生,如果我們希望用點擊綠色旗子來啟動程序執行的話,就要用到這個積木塊。我們現在就把這個積木塊拖進我們的程序窗口,像是這樣:
?????? 這樣一來,如果我們點擊綠色旗子,就相當于扔了一把飛刀進窗戶。。。。
?????? (扔飛刀也挺累的,所以我們休息一下,順便找找綠色旗子倒底在哪兒?)
?????? 好了,現在飛刀已經扔進來了,接下來,該讓我們的角色“收拾包袱”了。
?????? 不管是“收拾包袱”或者“奪門而去”,都是我們的“角色”所做的動作,所以我們需要在“動作”這個積木塊類型里去找,請打開“動作”積木塊類型,如下圖:
?????? 這個積木塊類型定義了我們的“角色”所能完成的所有動作,比如移動,旋轉之類的。
?????? (這里面怎么沒有“收拾包袱”啊?更沒有“一陽指”之類的武功絕學???嗯,畢竟Scratch是老外做的嘛,根本沒有考慮我們武林人士的需求,所以我們只好讓“角色”做點別的動作了。。。)
?????? 現在我們要做的是,當我們點擊綠色旗子之后,讓這個小貓,也就是我們的“角色”往前走50步的距離,勉強算“奪門而出”了吧?
?????? 我們要用到的是這個積木塊:
?????? 將它拖到程序區,并跟綠色旗子被點擊這個積木塊連接起來,然后把積木塊默認的10步改成50步,最終的程序像是這樣:
?????? 好了,程序這就樣編寫完成了。這個程序是當我們點擊綠色旗子啟動程序后,小貓向前走50步的距離。
?????? 現在可以來運行一下,用鼠標點擊綠色旗子看看效果吧。
?????? 程序執行正確,你會看到小貓向前走了一段距離。
?????? 很好,到目前為止我們已經編了一個真正的Scratch程序了,可是,如果今天只是編這樣一個程序,那我們的第一個作品就太讓人失望了,所以下來我們做一個稍微復雜點的程序。
?????? 我們今天要完成的作品,是用電腦的方向鍵來控制這個小貓,當我們按下不同的方向鍵時,小貓就向這個方向進行移動。
?????? 要實現這個功能,我們不能再用綠色旗子這個事件了,因為是要用鍵盤控制,那么觸發的“事件”應該是按下按鍵。
?????? 在“事件”積木塊類型中,我們找到這個積木塊:
?????? 這個積木塊表示當按下電腦上某個按鍵的事件,這個按鍵是可以選擇的,大家注意在積木塊上面有一個向下的小小的黑色三角,點擊這個三角就可以選擇我們需要的按鍵。
?????? 按我們的要求,我們現在需要拖入4個這樣的積木塊,并分別將按鍵選擇為“上移鍵”,“下移鍵”。。。。完成后如下圖所示(當然首先要把我們之前編的程序先刪除掉):
?????? “事件”布署完畢,接下來該加入相應的動作了。
?????? 可是,不知道大家是否意識到,我們碰到了一個問題:在“動作”積木塊類型里面,只有一個移動積木塊,并沒有區分是向左還是向右,更沒有向上和向下,那如何實現這些方向的移動呢?
?????? 把我們自已想像成這個貓,如果我們向前走了10步,然后被人要求要退回來,那我們是咋做的呢?
?????? 當然我們可以倒著走,不過更好的辦法是,我們先轉身回來,然后走10步對吧?當我們轉身以后,我們還是“向前”走,只不過因為我們面對的方向已經反過來了,所以實際上我們是在“向后”走。
?????? 回到我們的程序,我們也需要這樣一個“轉身”的動作,使角色知道自已應該往哪個方向移動。
?????? 還是在“動作”積木塊類型里面,我們找到如下的積木塊:
?????? 這個積木塊的作用,就是完成使角色轉向不同的方向,通過點擊積木塊上黑色小三角就可以進行選擇,它不僅可以控制上下左右,甚至可以設定任意角度,這個以后再說。
?????? 我們現在先將這個積木塊分別拖到剛剛我們寫的4個事件下面,并進行方向的選擇,完成后如下圖:
?
?????? 然后,我們再加入移動積木塊,完成后如下圖:
?????? 好了,現在程序終于編完了,現在你可以在電腦鍵盤上按下方向鍵,看看你的小貓是不是很“聽話”的按你的操作在移動呢?
?????? 現在,可以恭喜你了,你已經完成了你的第一個Scratch編程作品,雖然看上去還是比較簡單,但它是真正的一個程序。
?????? 今天我們學習了“事件”,“動作”,并介紹了幾個積木塊的使用,大家記住,相同積木塊類型里的所有積木塊的使用方法都是一樣的,在這個原則下,我鼓勵大家大膽的嘗試,去使用我們還沒有提到過的其它積木塊,看看你能不能讓你的小貓做點不同的事情?
?????? 就跟我們在學校放學的時候要留點家庭作業一樣,下面幾個工作也需要你來完成:
?????? 1.編個程序實現:當點擊綠色旗子后,小貓向前走50步,然后再退回來50步回到原點。
?????? 2.在第1個任務完成后,思考一下,如果我們需要小貓不停的向前向后移動,怎么實現?
?????? 3.在第2個任務完成后,深入思考一下,自已有沒有掃下面的二維碼關注?另外有沒有把這個文章分享出去?
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

- 上一篇
Scratch編程——數據篇
今天我們來探究一下Scratch編程的數據存儲問題。記得我當年上學開始學習編程時老師講過一句話:“變量是組成程序的基本元素”,這句話至今記憶猶新。想想看,程序其實就是對數據的處理,不管程序要完成怎樣的任務,其實都是要對相應的數據發出指令,進行計算,更新修改等等。那么在計算機中這些各種各樣
- 下一篇
Scratch基礎篇 第5課時 - 偵測 “別碰我!”
? ? ? ?今天小咖老師主要和大家說的是偵測模塊的積木使用。偵測,顧名思義是判斷的意思。當前角色是否碰到了另外一個角色,是否碰到了另外一個顏色,碰到了之后當前角色再做怎樣的操作。我們看下偵測模塊下有哪些積木的。