資訊內(nèi)容
Scratch編程之旅(2)---第一個(gè)作品
? ? ? ?今天我們要用Scratch編出第一個(gè)作品啦!
?????? 在開始之前,我們先來了解一個(gè)重要概念,那就是---“事件”。
?????? 我們平時(shí)會遇到各種各樣的事件,有些是意料中的,有的是意料之外的,而每個(gè)事件的發(fā)生,都會引發(fā)你做出一些后續(xù)動作。
?????? 舉個(gè)例子說明一下:
?????? 比如你作為一個(gè)少俠,本來好好的在家里苦練絕世武功,這時(shí)突然有人從窗戶扔進(jìn)一把飛刀,以迅雷不及掩耳盜鈴之勢扎在了你家電視上,飛刀上帶了一個(gè)小紙條,打開一看上面寫到:
?????? “華山論劍于今晚8點(diǎn)開始,速速前去!”
?????? 你看到后倒吸一口涼氣:我初入江湖,行事極為低調(diào),可是他們還是發(fā)現(xiàn)了我會絕世武功這個(gè)秘密,好吧!看來沒有必要再隱藏我的實(shí)力了。于是你馬上拿起包袱,奪門而去。。。
?????? 大家注意,這個(gè)“飛刀傳書”就是一個(gè)“事件”,而收到這個(gè)事件后,你“拿起包袱”以及“奪門而去”,就是這個(gè)事件引發(fā)的你的動作。
?????? 我們編的程序,它并不知道自已該什么時(shí)候開始運(yùn)行,需要我們通知它。在編程序的語言里,通知程序開始執(zhí)行,就是依靠“事件”,事件的觸發(fā),就是我們程序執(zhí)行的入口。
?????? 有的少俠告訴我,在線的Scratch太慢不好用,所以為師給你們做了一個(gè)本地版本(名字叫QRobot少兒編程軟件,放心他跟Scratch一樣,放心用吧),可以直接在電腦上用,不需要聯(lián)網(wǎng)也可以用,下載地址如下,安裝很容易就不說了:
?????? https://pan.baidu.com/s/1qZEs1CK
?????? 請諸位打開軟件,在“腳本”里面,我們可以看到“事件”這個(gè)積木塊類型,請點(diǎn)擊它。
?????? (現(xiàn)在開始,我們把腳本里面所有的小塊塊都稱為積木塊,相同屬性的積木塊都?xì)w到一個(gè)積木塊類型里面,比如“事件”,“動作”等都是一個(gè)個(gè)積木塊類型。)

?????? 從這個(gè)圖可以看到,“事件”這個(gè)積木塊類型里面,有各種各樣的積木塊,他們大多數(shù)都代表一個(gè)“事件”的發(fā)生,有的是代表主動去觸發(fā)一個(gè)事件。
?????? 我們拿第一個(gè)來講解一下:

?????? 這個(gè)積木塊表示當(dāng)綠色旗子被點(diǎn)擊的事件發(fā)生,如果我們希望用點(diǎn)擊綠色旗子來啟動程序執(zhí)行的話,就要用到這個(gè)積木塊。我們現(xiàn)在就把這個(gè)積木塊拖進(jìn)我們的程序窗口,像是這樣:

?????? 這樣一來,如果我們點(diǎn)擊綠色旗子,就相當(dāng)于扔了一把飛刀進(jìn)窗戶。。。。
?????? (扔飛刀也挺累的,所以我們休息一下,順便找找綠色旗子倒底在哪兒?)
?????? 好了,現(xiàn)在飛刀已經(jīng)扔進(jìn)來了,接下來,該讓我們的角色“收拾包袱”了。
?????? 不管是“收拾包袱”或者“奪門而去”,都是我們的“角色”所做的動作,所以我們需要在“動作”這個(gè)積木塊類型里去找,請打開“動作”積木塊類型,如下圖:

?????? 這個(gè)積木塊類型定義了我們的“角色”所能完成的所有動作,比如移動,旋轉(zhuǎn)之類的。
?????? (這里面怎么沒有“收拾包袱”啊?更沒有“一陽指”之類的武功絕學(xué)啊?嗯,畢竟Scratch是老外做的嘛,根本沒有考慮我們武林人士的需求,所以我們只好讓“角色”做點(diǎn)別的動作了。。。)
?????? 現(xiàn)在我們要做的是,當(dāng)我們點(diǎn)擊綠色旗子之后,讓這個(gè)小貓,也就是我們的“角色”往前走50步的距離,勉強(qiáng)算“奪門而出”了吧?
?????? 我們要用到的是這個(gè)積木塊:

?????? 將它拖到程序區(qū),并跟綠色旗子被點(diǎn)擊這個(gè)積木塊連接起來,然后把積木塊默認(rèn)的10步改成50步,最終的程序像是這樣:

?????? 好了,程序這就樣編寫完成了。這個(gè)程序是當(dāng)我們點(diǎn)擊綠色旗子啟動程序后,小貓向前走50步的距離。
?????? 現(xiàn)在可以來運(yùn)行一下,用鼠標(biāo)點(diǎn)擊綠色旗子看看效果吧。
?????? 程序執(zhí)行正確,你會看到小貓向前走了一段距離。
?????? 很好,到目前為止我們已經(jīng)編了一個(gè)真正的Scratch程序了,可是,如果今天只是編這樣一個(gè)程序,那我們的第一個(gè)作品就太讓人失望了,所以下來我們做一個(gè)稍微復(fù)雜點(diǎn)的程序。
?????? 我們今天要完成的作品,是用電腦的方向鍵來控制這個(gè)小貓,當(dāng)我們按下不同的方向鍵時(shí),小貓就向這個(gè)方向進(jìn)行移動。
?????? 要實(shí)現(xiàn)這個(gè)功能,我們不能再用綠色旗子這個(gè)事件了,因?yàn)槭且面I盤控制,那么觸發(fā)的“事件”應(yīng)該是按下按鍵。
?????? 在“事件”積木塊類型中,我們找到這個(gè)積木塊:

?????? 這個(gè)積木塊表示當(dāng)按下電腦上某個(gè)按鍵的事件,這個(gè)按鍵是可以選擇的,大家注意在積木塊上面有一個(gè)向下的小小的黑色三角,點(diǎn)擊這個(gè)三角就可以選擇我們需要的按鍵。
?????? 按我們的要求,我們現(xiàn)在需要拖入4個(gè)這樣的積木塊,并分別將按鍵選擇為“上移鍵”,“下移鍵”。。。。完成后如下圖所示(當(dāng)然首先要把我們之前編的程序先刪除掉):

?????? “事件”布署完畢,接下來該加入相應(yīng)的動作了。
?????? 可是,不知道大家是否意識到,我們碰到了一個(gè)問題:在“動作”積木塊類型里面,只有一個(gè)移動積木塊,并沒有區(qū)分是向左還是向右,更沒有向上和向下,那如何實(shí)現(xiàn)這些方向的移動呢?
?????? 把我們自已想像成這個(gè)貓,如果我們向前走了10步,然后被人要求要退回來,那我們是咋做的呢?
?????? 當(dāng)然我們可以倒著走,不過更好的辦法是,我們先轉(zhuǎn)身回來,然后走10步對吧?當(dāng)我們轉(zhuǎn)身以后,我們還是“向前”走,只不過因?yàn)槲覀兠鎸Φ姆较蛞呀?jīng)反過來了,所以實(shí)際上我們是在“向后”走。
?????? 回到我們的程序,我們也需要這樣一個(gè)“轉(zhuǎn)身”的動作,使角色知道自已應(yīng)該往哪個(gè)方向移動。
?????? 還是在“動作”積木塊類型里面,我們找到如下的積木塊:

?????? 這個(gè)積木塊的作用,就是完成使角色轉(zhuǎn)向不同的方向,通過點(diǎn)擊積木塊上黑色小三角就可以進(jìn)行選擇,它不僅可以控制上下左右,甚至可以設(shè)定任意角度,這個(gè)以后再說。
?????? 我們現(xiàn)在先將這個(gè)積木塊分別拖到剛剛我們寫的4個(gè)事件下面,并進(jìn)行方向的選擇,完成后如下圖:
?
?????? 然后,我們再加入移動積木塊,完成后如下圖:

?????? 好了,現(xiàn)在程序終于編完了,現(xiàn)在你可以在電腦鍵盤上按下方向鍵,看看你的小貓是不是很“聽話”的按你的操作在移動呢?
?????? 現(xiàn)在,可以恭喜你了,你已經(jīng)完成了你的第一個(gè)Scratch編程作品,雖然看上去還是比較簡單,但它是真正的一個(gè)程序。
?????? 今天我們學(xué)習(xí)了“事件”,“動作”,并介紹了幾個(gè)積木塊的使用,大家記住,相同積木塊類型里的所有積木塊的使用方法都是一樣的,在這個(gè)原則下,我鼓勵(lì)大家大膽的嘗試,去使用我們還沒有提到過的其它積木塊,看看你能不能讓你的小貓做點(diǎn)不同的事情?
?????? 就跟我們在學(xué)校放學(xué)的時(shí)候要留點(diǎn)家庭作業(yè)一樣,下面幾個(gè)工作也需要你來完成:
?????? 1.編個(gè)程序?qū)崿F(xiàn):當(dāng)點(diǎn)擊綠色旗子后,小貓向前走50步,然后再退回來50步回到原點(diǎn)。
?????? 2.在第1個(gè)任務(wù)完成后,思考一下,如果我們需要小貓不停的向前向后移動,怎么實(shí)現(xiàn)?
?????? 3.在第2個(gè)任務(wù)完成后,深入思考一下,自已有沒有掃下面的二維碼關(guān)注?另外有沒有把這個(gè)文章分享出去?
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除
- 上一篇
Scratch編程——數(shù)據(jù)篇
今天我們來探究一下Scratch編程的數(shù)據(jù)存儲問題。記得我當(dāng)年上學(xué)開始學(xué)習(xí)編程時(shí)老師講過一句話:“變量是組成程序的基本元素”,這句話至今記憶猶新。想想看,程序其實(shí)就是對數(shù)據(jù)的處理,不管程序要完成怎樣的任務(wù),其實(shí)都是要對相應(yīng)的數(shù)據(jù)發(fā)出指令,進(jìn)行計(jì)算,更新修改等等。那么在計(jì)算機(jī)中這些各種各樣
- 下一篇
Scratch基礎(chǔ)篇 第5課時(shí) - 偵測 “別碰我!”
? ? ? ?今天小咖老師主要和大家說的是偵測模塊的積木使用。偵測,顧名思義是判斷的意思。當(dāng)前角色是否碰到了另外一個(gè)角色,是否碰到了另外一個(gè)顏色,碰到了之后當(dāng)前角色再做怎樣的操作。我們看下偵測模塊下有哪些積木的。
