国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

Scratch全國少兒編程競(jìng)賽獲獎(jiǎng)作品《記憶碎片》解析上篇

極客小將2020-11-24-
https://cdn.china-scratch.com/timg/191109/1332341041-0.gif??點(diǎn)擊上方“藍(lán)字”關(guān)注果凍老師

Scratch全國少兒編程競(jìng)賽

獲獎(jiǎng)作品解析
《記憶碎片》

本文介紹的作品是全國青少年創(chuàng)意編程與智能設(shè)計(jì)大賽創(chuàng)意編程比賽一等獎(jiǎng)獲得者孫佳閱同學(xué)的最新參賽作品。

作品說明

暑假里,我無意中被媽媽訂閱的一期《三聯(lián)生活周刊》的主題《我把自己弄丟了》吸引了,我一口氣讀完了里面的每一篇相關(guān)文章,了解了一種我從未聽說過的疾病——阿爾茲海默癥?;颊叩氖澜缟钌钫鸷沉宋?,他們的記憶在被疾病一點(diǎn)一點(diǎn)無情地吞噬,但他們?nèi)匀荒軌蚋惺艿奖?、孤?dú)、不安,仍然能夠感受到愛與被愛。于是,我決定以此作為作品的主題,我想通過這個(gè)作品,讓玩家走進(jìn)阿爾茲海默癥患者的內(nèi)心,呼吁整個(gè)社會(huì)對(duì)他們的關(guān)注與愛。

游戲中的變量以及作用
變量名稱
作用
播完了? 記錄背景音樂是否播放完
拼好數(shù)量 記錄拼好的碎片數(shù)量
收集數(shù)量 記錄收集到的碎片數(shù)量
正文upload/article/images/2020-11-24/f6e14544522b58dda227425f44de1a76.jpg

今天,果凍老師繼續(xù)帶大家解析Scratch的參賽作品,這一次,我們來學(xué)習(xí)小學(xué)4-6年級(jí)組一等獎(jiǎng)獲得者孫佳閱同學(xué)的《記憶碎片》。這是一個(gè)有關(guān)阿爾茲海默癥的作品,什么是阿爾茲海默癥呢?它是一種認(rèn)知與行為功能障礙的疾病,常發(fā)生于老年人的身上,主要的表現(xiàn)就是記憶力減退,經(jīng)常將日常所做的事和常用的一些物品遺忘。在《記憶碎片》這個(gè)作品中,孫佳閱同學(xué)使我們化身一名阿爾茲海默癥患者,將記憶中殘留的物品碎片進(jìn)行拼接,重新喚起對(duì)于往事的完整記憶。這個(gè)小小的作品呼吁的是要對(duì)阿爾茲海默癥患者有更多的關(guān)注與愛心,作為每一個(gè)都會(huì)變老的人,我們應(yīng)該讓這樣的作品傳播的更遠(yuǎn)。

整個(gè)作品的基調(diào)是緩慢而溫馨的,接下來我們就一起進(jìn)入阿爾茲海默癥患者的世界。

點(diǎn)擊綠旗

如同大多數(shù)的游戲作品一樣,點(diǎn)擊綠旗后并沒有立即開始游戲,而是有一個(gè)開始頁,上面顯示了作品的名字與一個(gè)開始按鈕。

upload/article/images/2020-11-24/3859a23e2a8cc86e613d7b12c795b728.jpg

這里帶有特效的角色有兩個(gè):游戲名稱的文字和三角形的開始按鈕。

upload/article/images/2020-11-24/c3808afc568a91031c0e7fa034a71ad0.jpg

當(dāng)綠旗被點(diǎn)擊后,文字與按鈕都有一個(gè)虛像漸變顯示的效果:

upload/article/images/2020-11-24/cb6fe278e4561663d57358d9e86a57ce.jpg

不同的是,按鈕的顯示有一個(gè)0.5秒的延時(shí)。

upload/article/images/2020-11-24/300c08db85b34f1458070b473c58a273.jpg

這樣,一個(gè)簡單的過渡動(dòng)畫就添加好了。接下來,我們就要點(diǎn)擊按鈕進(jìn)入游戲了。那如何判斷按鈕被點(diǎn)擊了呢?在Scratch的事件中有一個(gè)當(dāng)角色被點(diǎn)擊的語句,拖動(dòng)它到代碼區(qū)就可以簡單快速的判斷角色是否被鼠標(biāo)點(diǎn)擊了。

但是作為一名參加比賽的選手,我們要自己來實(shí)現(xiàn)點(diǎn)擊判斷的代碼,這樣才會(huì)顯得與眾不同,其實(shí)代碼實(shí)現(xiàn)起來也不難,就是兩個(gè)等待語句:

upload/article/images/2020-11-24/b41c72f1a794f8110d0ab6000f997ec0.jpg

第一個(gè)等待語句判斷按鈕是否碰到了鼠標(biāo)指針并且按下了鼠標(biāo),也就是我們按下了鼠標(biāo)的左鍵;第二個(gè)等待語句是反向判斷,它判斷第一個(gè)等待語句的條件是否不成立,也就是我們松開了鼠標(biāo)的左鍵,這兩個(gè)語句組合在一起就實(shí)現(xiàn)了鼠標(biāo)按鍵點(diǎn)擊判斷的效果。

當(dāng)兩個(gè)等待語句的條件都滿足之后,就會(huì)繼續(xù)執(zhí)行下面的代碼,廣播進(jìn)入并將文字與按鈕逐漸隱藏掉。

進(jìn)入

點(diǎn)擊開始按鈕之后,并沒有立即開始游戲,而是播放了一段過渡動(dòng)畫。

https://cdn.china-scratch.com/timg/191109/13323C230-7.gif

這段動(dòng)畫通過打字的方式向我們介紹了游戲的背景,讓游戲者化身為一名阿爾茲海默癥患者。在Scratch中,對(duì)于單個(gè)文字的操作是非常有限的,并沒有專門的語句來控制文字。例如這里的打字效果,需要將文字一個(gè)一個(gè)的顯示出來,直接拖動(dòng)語句通過代碼邏輯是無法實(shí)現(xiàn)的。于是,就要轉(zhuǎn)變思路,代碼不行就從造型上入手,我們把文字看成是一個(gè)整體,每多一個(gè)文字就多一個(gè)造型,這樣不斷的切換造型就可以實(shí)現(xiàn)打字的動(dòng)畫效果了,這就是作品中使用的方法。

果凍老師簡單的畫一下大概就是這個(gè)樣子的:

upload/article/images/2020-11-24/f6c43c87de8aa1fbddc62f73829cbc3c.jpg

每個(gè)造型都比前一個(gè)多一個(gè)文字,其中從第一個(gè)開始每間隔一個(gè)造型還給文字的后面添加了一個(gè)“I”的符號(hào),這樣在動(dòng)畫中打字的效果就更加逼真了。

upload/article/images/2020-11-24/1580826d0ab8f8e8f4e2179a928520cc.jpg

當(dāng)接收到進(jìn)入的廣播后,首先將造型初始化為第一張,然后就不斷的切換下一個(gè)造型,這段話總共有61個(gè)字,那么就需要切換61次,當(dāng)重復(fù)執(zhí)行結(jié)束后,打字動(dòng)畫就完成了,接著再使用虛像特效將文字整體逐漸的隱藏掉,最后廣播開始就進(jìn)入游戲的正式環(huán)節(jié)。

很簡單,是吧!但是這里有一個(gè)小問題,就是這段打字動(dòng)畫還是挺耗時(shí)的,如果每次打開游戲都要看一遍也有點(diǎn)太煩人了吧,所以我們還要給這個(gè)動(dòng)畫添加一個(gè)可以跳過的功能,比如按下鍵盤的空格鍵就可以直接進(jìn)入游戲:

upload/article/images/2020-11-24/6dbaa18ab96f03727e3c2d62b96fc7a8.jpg

接下來,就趕快按下空格鍵開始游戲吧。

開始

果凍老師第一次游戲進(jìn)行到這里的時(shí)候是有些驚訝與疑惑的,驚訝的地方在于這竟然是一個(gè)3D立體的效果,太棒了,孫佳閱同學(xué)真的厲害!疑惑的地方在于雖然界面上有一個(gè)簡單的提示,告訴我按方向鍵,但是我還是不知道該如何操作進(jìn)入下一步。

https://cdn.china-scratch.com/timg/191109/13323J034-11.gif

于是,老師就打開游戲的源代碼仔細(xì)的閱讀了一下,原來這里需要我們按下方向鍵收集所有的碎片,收集的方法就是讓每個(gè)碎片都碰到舞臺(tái)的邊緣。這樣子啊,看來我們要在游戲中把提示寫的更清楚些,否則就會(huì)出現(xiàn)玩到一半卡住進(jìn)行不下去的尷尬情況了。

搞清楚了游戲的玩法,就來看接收開始廣播的代碼吧。

接收開始廣播的角色有很多,果凍老師數(shù)了一下,一共有13個(gè)。

upload/article/images/2020-11-24/05124bc16f5556bfc8ff3732d3e63d2b.jpg

哇,這么長的一串!別害怕,果凍老師將這些角色分成了四類,點(diǎn)1到點(diǎn)4是一類,畫筆角色是一類,碎片1-1到1-6以及黑色唱盤是一類,最后背景是一類。每一類的角色它們的代碼是類似的,所以只要各選出一個(gè)角色將它的代碼搞清楚,上面截圖中的一長串角色就都清楚了,是不是一下子簡單多了!

點(diǎn)1到點(diǎn)4是四個(gè)點(diǎn)坐標(biāo),它們?yōu)楫嫻P的畫線提供參考點(diǎn),按下鍵盤的方向鍵可以移動(dòng)點(diǎn)坐標(biāo),同時(shí)畫筆畫出的線也會(huì)跟著點(diǎn)移動(dòng)。

比如點(diǎn)1的代碼:

upload/article/images/2020-11-24/be83b047e57de86f7652548970219905.jpg

按下不同的方向鍵點(diǎn)1會(huì)向不同的方向移動(dòng),移動(dòng)是通過改變角色的X或Y坐標(biāo)實(shí)現(xiàn)的。

點(diǎn)2、點(diǎn)3、點(diǎn)4的代碼與點(diǎn)1是類似的,只是初始化的位置坐標(biāo)不一樣而已。這四個(gè)點(diǎn)一起組成了一個(gè)矩形。

OK,點(diǎn)的坐標(biāo)設(shè)置好了,那就該畫筆登場(chǎng)了。

upload/article/images/2020-11-24/bc6cab7ad8744e907e5d24d920be7fe3.jpg

畫筆接收到開始的命令后,先將收集數(shù)量這個(gè)變量初始化為0,它是用來記錄我們收集到碎片的數(shù)量,后面我們每收集一個(gè)碎片它的值就會(huì)增加1。

接著,代碼都是有關(guān)繪制線條的,由于背景是黑色的,所以將畫筆設(shè)置為白色,這樣線條更明顯突出,然后放置一個(gè)重復(fù)執(zhí)行語句,這個(gè)語句很重要,它的意思是說畫筆會(huì)一直不停的繪制,添加上重復(fù)執(zhí)行的語句,白色的線條才會(huì)隨著四個(gè)點(diǎn)的移動(dòng)而移動(dòng)。果凍老師在截圖中標(biāo)記了繪制過程中的各個(gè)關(guān)鍵點(diǎn),每一輪的繪制都是在瞬間完成的,如果在個(gè)點(diǎn)之間添加上等待時(shí)間,就可以看到繪制的過程。

upload/article/images/2020-11-24/7b3bfce77801ed764e4768c2c7a6e4ad.jpg

在代碼中還有一個(gè)非常重要的語句就是全部清除,它被放在重復(fù)執(zhí)行的里面,全部清除的意思就是清除之前繪制的所有線條,放在重復(fù)執(zhí)行里面就可以保證每一輪繪制的線條都是獨(dú)立的,不會(huì)和之前繪制的線條混在一起。這樣說可能不太清楚,同學(xué)們嘗試在源代碼中刪除全部清除這條語句,再看游戲的效果,就知道果凍老師要表達(dá)的意思了。

第一張拼圖一共有六個(gè)碎片,它們隨機(jī)分布在頁面中,并且根據(jù)三維坐標(biāo)系近大遠(yuǎn)小的特點(diǎn),設(shè)置碎片為不同的大小,這樣就在二維平面中模擬出了三維空間的效果。

以第一個(gè)碎片的代碼為例:

upload/article/images/2020-11-24/583a8c7db2145c586c009368bbd226bd.jpg

第一條語句設(shè)置了角色的拖動(dòng)模式為不可拖動(dòng),意味著游戲中我們不能用鼠標(biāo)來拖動(dòng)角色,也就是說它的位置是不能用鼠標(biāo)改變的。碎片1的大小設(shè)置為20,并顯示在(90,150)這個(gè)位置。接下來,拖動(dòng)重復(fù)執(zhí)行直到碰到舞臺(tái)邊緣?這組語句到腳本區(qū),表示碎片會(huì)一直執(zhí)行重復(fù)里面的代碼,直到碰到舞臺(tái)邊緣才繼續(xù)執(zhí)行重復(fù)后面的代碼。

重復(fù)執(zhí)行里面的代碼和點(diǎn)1是類似的,按下不同的方向鍵角色會(huì)向不同的方向移動(dòng)。不一樣的是碎片除了距離會(huì)移動(dòng)之外,它的大小也會(huì)發(fā)生變化,這樣設(shè)置的原理是,在三維空間中物體朝觀察者方向移動(dòng)時(shí),它在觀察者眼中的投影是逐漸變大的,而反方向移動(dòng)時(shí)它在觀察者眼中的投影是逐漸變小的,同學(xué)們可以試一試你觀察一個(gè)物體運(yùn)動(dòng)時(shí)是不是這樣子呢?

除了大小的變化,碎片與點(diǎn)還有一點(diǎn)不一樣,就是當(dāng)按下左或者右方向鍵時(shí),碎片X坐標(biāo)移動(dòng)的距離是0.5,而點(diǎn)移動(dòng)的距離是1,它們移動(dòng)的距離是不一樣的,這樣做也是為了模擬物體在真實(shí)三維空間中的效果,按下左右方向鍵就相當(dāng)于觀察者左右在移動(dòng),他的視角就會(huì)發(fā)生改變。在真實(shí)世界中當(dāng)觀察者視角發(fā)生變化后,遠(yuǎn)近物體在眼中移動(dòng)的距離是不一樣的,遠(yuǎn)處物體移動(dòng)的快,近處物體移動(dòng)的慢,這種現(xiàn)象有一個(gè)名字叫做“視差”,代碼中就是根據(jù)這個(gè)原理設(shè)置的。

接收開始廣播的幾個(gè)重要角色果凍老師就介紹完了,現(xiàn)在我們就可以按下鍵盤的方向鍵來收集碎片:

https://cdn.china-scratch.com/timg/191109/13323Q635-17.gif

在下一篇文章中,我們繼續(xù)介紹游戲后面的情節(jié),碎片收集齊后還要將這些碎片拼接成一幅完整的照片,我們一共要完成五幅照片的拼接游戲才算完成。好了,那我們下次再見吧!

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 安顺市| 郁南县| 闽侯县| 白银市| 五常市| 新郑市| 类乌齐县| 隆安县| 晴隆县| 尚义县| 甘南县| 高尔夫| 邯郸县| 云阳县| 孝感市| 汉川市| 马边| 双峰县| 莱芜市| 固原市| 莆田市| 中山市| 墨玉县| 英吉沙县| 都昌县| 德阳市| 阳原县| 新沂市| 芜湖市| 松原市| 双城市| 抚宁县| 水富县| 商洛市| 自贡市| 宁晋县| 仙桃市| 库尔勒市| 剑川县| 南涧| 诏安县|