資訊內(nèi)容
Scratch編程——事件控制篇
? ? 彤爸的工作是做工業(yè)自動化的,經(jīng)常和變頻器呀,PLC(可編程控制器)呀打交道,工廠里面的機(jī)器設(shè)備都少不了這些東西的控制。比如當(dāng)工人按下啟動按鈕的時候,機(jī)器開始運(yùn)行;當(dāng)設(shè)備移動到一個特定位置時立刻停機(jī);當(dāng)這一道工序執(zhí)行10次以后開始執(zhí)行下一道工序,等等。我們所說的這些情景就都屬于事件觸發(fā)和控制的過程。
? ? Scratch編程也有類似的機(jī)制,來控制程序腳本的開始或停止,控制程序腳本執(zhí)行的步驟和次數(shù)等,也就是事件和控制欄。
??
? ? 在事件欄和控制欄中的很多語句我們在之前篇章的實(shí)例程序中都使用過,比如“當(dāng)綠旗被點(diǎn)擊”,“當(dāng)角色被點(diǎn)擊”,“重復(fù)執(zhí)行10次”,“如果<條件>,那么。。。”等。這里“當(dāng)綠旗被點(diǎn)擊”和“當(dāng)角色被點(diǎn)擊”都屬于事件欄,是用來觸發(fā)一段程序腳本開始執(zhí)行的條件,我們可以稱之為:條件觸發(fā)。在上面所列出來的語句中可以看到還有一些別的條件也可以作為一段程序開始的觸發(fā),比如按下空格(或其他)按鍵,舞臺背景切換,接收到的響度等。除此之外,還有一種條件是“當(dāng)接收到消息1”,這也是一種常用的條件觸發(fā),經(jīng)常用在兩個角色的互動。例如下面的程序示例就是當(dāng)我們點(diǎn)擊鈴鐺角色時向外廣播“前進(jìn)”消息,而對于小貓角色就是當(dāng)接收到“前進(jìn)”消息,向前移動10步。這樣通過這個“前進(jìn)”消息,我們連接了兩個不同的角色,讓它們之間產(chǎn)生了互動。
? ? 在控制欄中,最常用的語句就是各種循環(huán)語句和條件判斷語句。下面的三段程序分別使用了固定次數(shù)的循環(huán)語句,無限循環(huán)語句加條件判斷語句,和循環(huán)直到滿足條件語句,但是它們實(shí)現(xiàn)的結(jié)果都是一樣的——讓小貓向前移動50步,殊途同歸,只是表達(dá)的方式不同而已。這里還使用了一種“停止語句”,它可以作為一段程序腳本的結(jié)束,或者跳出當(dāng)前的循環(huán)等作用來使用。
? ? 在控制欄中還有一類語句是關(guān)于克隆的,克隆是將當(dāng)前角色復(fù)制顯示在舞臺上,這樣當(dāng)我們需要很多相同的角色時就不用建立那么多單獨(dú)的角色了,可以直接用克隆語句來實(shí)現(xiàn)角色的復(fù)制。例如下面的程序就可以復(fù)制出10個小貓的克隆體,顯示在舞臺的隨機(jī)位置上。
? ? 可以說事件和控制語句是讓我們的Scratch程序活起來的最有效的武器。只有有效靈活的使用這一類語句才能讓我們的小小舞臺上的角色變得有生命,有色彩,按照我們的期望完成任務(wù)。現(xiàn)在,我覺得我們里一個合格的Scratch達(dá)人已經(jīng)不遠(yuǎn)了。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除
