資訊內(nèi)容
Scratch全國少兒編程競賽獲獎作品《記憶碎片》解析上篇
Scratch全國少兒編程競賽
獲獎作品解析《記憶碎片》
本文介紹的作品是全國青少年創(chuàng)意編程與智能設(shè)計大賽創(chuàng)意編程比賽一等獎獲得者孫佳閱同學(xué)的最新參賽作品。
作品說明暑假里,我無意中被媽媽訂閱的一期《三聯(lián)生活周刊》的主題《我把自己弄丟了》吸引了,我一口氣讀完了里面的每一篇相關(guān)文章,了解了一種我從未聽說過的疾病——阿爾茲海默癥。患者的世界深深震撼了我,他們的記憶在被疾病一點一點無情地吞噬,但他們?nèi)匀荒軌蚋惺艿奖А⒐陋殹⒉话玻匀荒軌蚋惺艿綈叟c被愛。于是,我決定以此作為作品的主題,我想通過這個作品,讓玩家走進阿爾茲海默癥患者的內(nèi)心,呼吁整個社會對他們的關(guān)注與愛。
游戲中的變量以及作用
變量名稱 |
作用 |
---|---|
播完了? | 記錄背景音樂是否播放完 |
拼好數(shù)量 | 記錄拼好的碎片數(shù)量 |
收集數(shù)量 | 記錄收集到的碎片數(shù)量 |

今天,果凍老師繼續(xù)帶大家解析Scratch的參賽作品,這一次,我們來學(xué)習(xí)小學(xué)4-6年級組一等獎獲得者孫佳閱同學(xué)的《記憶碎片》。這是一個有關(guān)阿爾茲海默癥的作品,什么是阿爾茲海默癥呢?它是一種認(rèn)知與行為功能障礙的疾病,常發(fā)生于老年人的身上,主要的表現(xiàn)就是記憶力減退,經(jīng)常將日常所做的事和常用的一些物品遺忘。在《記憶碎片》這個作品中,孫佳閱同學(xué)使我們化身一名阿爾茲海默癥患者,將記憶中殘留的物品碎片進行拼接,重新喚起對于往事的完整記憶。這個小小的作品呼吁的是要對阿爾茲海默癥患者有更多的關(guān)注與愛心,作為每一個都會變老的人,我們應(yīng)該讓這樣的作品傳播的更遠(yuǎn)。
整個作品的基調(diào)是緩慢而溫馨的,接下來我們就一起進入阿爾茲海默癥患者的世界。
點擊綠旗如同大多數(shù)的游戲作品一樣,點擊綠旗后并沒有立即開始游戲,而是有一個開始頁,上面顯示了作品的名字與一個開始按鈕。
這里帶有特效的角色有兩個:游戲名稱的文字和三角形的開始按鈕。
當(dāng)綠旗被點擊后,文字與按鈕都有一個虛像漸變顯示的效果:
不同的是,按鈕的顯示有一個0.5秒的延時。
這樣,一個簡單的過渡動畫就添加好了。接下來,我們就要點擊按鈕進入游戲了。那如何判斷按鈕被點擊了呢?在Scratch的事件中有一個當(dāng)角色被點擊的語句,拖動它到代碼區(qū)就可以簡單快速的判斷角色是否被鼠標(biāo)點擊了。
但是作為一名參加比賽的選手,我們要自己來實現(xiàn)點擊判斷的代碼,這樣才會顯得與眾不同,其實代碼實現(xiàn)起來也不難,就是兩個等待語句:
第一個等待語句判斷按鈕是否碰到了鼠標(biāo)指針并且按下了鼠標(biāo),也就是我們按下了鼠標(biāo)的左鍵;第二個等待語句是反向判斷,它判斷第一個等待語句的條件是否不成立,也就是我們松開了鼠標(biāo)的左鍵,這兩個語句組合在一起就實現(xiàn)了鼠標(biāo)按鍵點擊判斷的效果。
當(dāng)兩個等待語句的條件都滿足之后,就會繼續(xù)執(zhí)行下面的代碼,廣播進入并將文字與按鈕逐漸隱藏掉。
進入點擊開始按鈕之后,并沒有立即開始游戲,而是播放了一段過渡動畫。
這段動畫通過打字的方式向我們介紹了游戲的背景,讓游戲者化身為一名阿爾茲海默癥患者。在Scratch中,對于單個文字的操作是非常有限的,并沒有專門的語句來控制文字。例如這里的打字效果,需要將文字一個一個的顯示出來,直接拖動語句通過代碼邏輯是無法實現(xiàn)的。于是,就要轉(zhuǎn)變思路,代碼不行就從造型上入手,我們把文字看成是一個整體,每多一個文字就多一個造型,這樣不斷的切換造型就可以實現(xiàn)打字的動畫效果了,這就是作品中使用的方法。
果凍老師簡單的畫一下大概就是這個樣子的:
每個造型都比前一個多一個文字,其中從第一個開始每間隔一個造型還給文字的后面添加了一個“I”的符號,這樣在動畫中打字的效果就更加逼真了。
當(dāng)接收到進入的廣播后,首先將造型初始化為第一張,然后就不斷的切換下一個造型,這段話總共有61個字,那么就需要切換61次,當(dāng)重復(fù)執(zhí)行結(jié)束后,打字動畫就完成了,接著再使用虛像特效將文字整體逐漸的隱藏掉,最后廣播開始就進入游戲的正式環(huán)節(jié)。
很簡單,是吧!但是這里有一個小問題,就是這段打字動畫還是挺耗時的,如果每次打開游戲都要看一遍也有點太煩人了吧,所以我們還要給這個動畫添加一個可以跳過的功能,比如按下鍵盤的空格鍵就可以直接進入游戲:
接下來,就趕快按下空格鍵開始游戲吧。
開始果凍老師第一次游戲進行到這里的時候是有些驚訝與疑惑的,驚訝的地方在于這竟然是一個3D立體的效果,太棒了,孫佳閱同學(xué)真的厲害!疑惑的地方在于雖然界面上有一個簡單的提示,告訴我按方向鍵,但是我還是不知道該如何操作進入下一步。
于是,老師就打開游戲的源代碼仔細(xì)的閱讀了一下,原來這里需要我們按下方向鍵收集所有的碎片,收集的方法就是讓每個碎片都碰到舞臺的邊緣。這樣子啊,看來我們要在游戲中把提示寫的更清楚些,否則就會出現(xiàn)玩到一半卡住進行不下去的尷尬情況了。
搞清楚了游戲的玩法,就來看接收開始廣播的代碼吧。
接收開始廣播的角色有很多,果凍老師數(shù)了一下,一共有13個。
哇,這么長的一串!別害怕,果凍老師將這些角色分成了四類,點1到點4是一類,畫筆角色是一類,碎片1-1到1-6以及黑色唱盤是一類,最后背景是一類。每一類的角色它們的代碼是類似的,所以只要各選出一個角色將它的代碼搞清楚,上面截圖中的一長串角色就都清楚了,是不是一下子簡單多了!
點1到點4是四個點坐標(biāo),它們?yōu)楫嫻P的畫線提供參考點,按下鍵盤的方向鍵可以移動點坐標(biāo),同時畫筆畫出的線也會跟著點移動。
比如點1的代碼:
按下不同的方向鍵點1會向不同的方向移動,移動是通過改變角色的X或Y坐標(biāo)實現(xiàn)的。
點2、點3、點4的代碼與點1是類似的,只是初始化的位置坐標(biāo)不一樣而已。這四個點一起組成了一個矩形。
OK,點的坐標(biāo)設(shè)置好了,那就該畫筆登場了。
畫筆接收到開始的命令后,先將收集數(shù)量這個變量初始化為0,它是用來記錄我們收集到碎片的數(shù)量,后面我們每收集一個碎片它的值就會增加1。
接著,代碼都是有關(guān)繪制線條的,由于背景是黑色的,所以將畫筆設(shè)置為白色,這樣線條更明顯突出,然后放置一個重復(fù)執(zhí)行語句,這個語句很重要,它的意思是說畫筆會一直不停的繪制,添加上重復(fù)執(zhí)行的語句,白色的線條才會隨著四個點的移動而移動。果凍老師在截圖中標(biāo)記了繪制過程中的各個關(guān)鍵點,每一輪的繪制都是在瞬間完成的,如果在個點之間添加上等待時間,就可以看到繪制的過程。
在代碼中還有一個非常重要的語句就是全部清除,它被放在重復(fù)執(zhí)行的里面,全部清除的意思就是清除之前繪制的所有線條,放在重復(fù)執(zhí)行里面就可以保證每一輪繪制的線條都是獨立的,不會和之前繪制的線條混在一起。這樣說可能不太清楚,同學(xué)們嘗試在源代碼中刪除全部清除這條語句,再看游戲的效果,就知道果凍老師要表達(dá)的意思了。
第一張拼圖一共有六個碎片,它們隨機分布在頁面中,并且根據(jù)三維坐標(biāo)系近大遠(yuǎn)小的特點,設(shè)置碎片為不同的大小,這樣就在二維平面中模擬出了三維空間的效果。
以第一個碎片的代碼為例:
第一條語句設(shè)置了角色的拖動模式為不可拖動,意味著游戲中我們不能用鼠標(biāo)來拖動角色,也就是說它的位置是不能用鼠標(biāo)改變的。碎片1的大小設(shè)置為20,并顯示在(90,150)這個位置。接下來,拖動重復(fù)執(zhí)行直到碰到舞臺邊緣?這組語句到腳本區(qū),表示碎片會一直執(zhí)行重復(fù)里面的代碼,直到碰到舞臺邊緣才繼續(xù)執(zhí)行重復(fù)后面的代碼。
重復(fù)執(zhí)行里面的代碼和點1是類似的,按下不同的方向鍵角色會向不同的方向移動。不一樣的是碎片除了距離會移動之外,它的大小也會發(fā)生變化,這樣設(shè)置的原理是,在三維空間中物體朝觀察者方向移動時,它在觀察者眼中的投影是逐漸變大的,而反方向移動時它在觀察者眼中的投影是逐漸變小的,同學(xué)們可以試一試你觀察一個物體運動時是不是這樣子呢?
除了大小的變化,碎片與點還有一點不一樣,就是當(dāng)按下左或者右方向鍵時,碎片X坐標(biāo)移動的距離是0.5,而點移動的距離是1,它們移動的距離是不一樣的,這樣做也是為了模擬物體在真實三維空間中的效果,按下左右方向鍵就相當(dāng)于觀察者左右在移動,他的視角就會發(fā)生改變。在真實世界中當(dāng)觀察者視角發(fā)生變化后,遠(yuǎn)近物體在眼中移動的距離是不一樣的,遠(yuǎn)處物體移動的快,近處物體移動的慢,這種現(xiàn)象有一個名字叫做“視差”,代碼中就是根據(jù)這個原理設(shè)置的。
接收開始廣播的幾個重要角色果凍老師就介紹完了,現(xiàn)在我們就可以按下鍵盤的方向鍵來收集碎片:
在下一篇文章中,我們繼續(xù)介紹游戲后面的情節(jié),碎片收集齊后還要將這些碎片拼接成一幅完整的照片,我們一共要完成五幅照片的拼接游戲才算完成。好了,那我們下次再見吧!
END聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除

- 上一篇
創(chuàng)意scratch編程課:火影經(jīng)典忍術(shù),宇智波佐助的寫輪眼!
在火影忍者中,寫輪眼是非常經(jīng)典的忍術(shù)。作為宇智波家族的傳承忍術(shù),宇智波佐助的寫輪眼更為經(jīng)典,隨著佐助能力的提升,寫輪眼會不斷進化,最終進化成輪回眼。今天我們就用從網(wǎng)上找來的素材來制作一下這個寫輪眼進化的過程!視頻如下: 首先我們從網(wǎng)絡(luò)上找來三個素材,分別如下:
- 下一篇
Scratch3.0師資培訓(xùn)教程
書名:《中小機構(gòu)Scratch3.0師資內(nèi)訓(xùn)教程》適合人群:針對從事少兒編程的機構(gòu)和老師形式:紙質(zhì)教材+14節(jié)視頻課程價格:39.9元全國包郵(只收了印刷成本和郵費)