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

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

Scratch全國少兒編程競賽獲獎作品《記憶碎片》解析上篇

極客小將2020-11-26-
Scratch全國少兒編程競賽 獲獎作品解析 《記憶碎片》 本文介紹的作品是全國青少年創意編程與智能設計大賽創意編程比賽一等獎獲得者孫佳閱同學的最新參賽作品。 作品說明 暑假里,我無意中被媽媽訂閱的一期《三聯生活周刊》的主題《我把自己弄丟了

Scratch全國少兒編程競賽

獲獎作品解析
《記憶碎片》

本文介紹的作品是全國青少年創意編程與智能設計大賽創意編程比賽一等獎獲得者孫佳閱同學的最新參賽作品。

作品說明

暑假里,我無意中被媽媽訂閱的一期《三聯生活周刊》的主題《我把自己弄丟了》吸引了,我一口氣讀完了里面的每一篇相關文章,了解了一種我從未聽說過的疾病——阿爾茲海默癥。患者的世界深深震撼了我,他們的記憶在被疾病一點一點無情地吞噬,但他們仍然能夠感受到悲哀、孤獨、不安,仍然能夠感受到愛與被愛。于是,我決定以此作為作品的主題,我想通過這個作品,讓玩家走進阿爾茲海默癥患者的內心,呼吁整個社會對他們的關注與愛。

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

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

整個作品的基調是緩慢而溫馨的,接下來我們就一起進入阿爾茲海默癥患者的世界。

點擊綠旗

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

upload/article/images/2020-11-26/eb0ef6e808fa10e2fc713794663f2a5c.jpg

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

upload/article/images/2020-11-26/9ad40f465c19c5cb62c181e6feb00b65.jpg

當綠旗被點擊后,文字與按鈕都有一個虛像漸變顯示的效果:

upload/article/images/2020-11-26/5545aa85094a85d370a3cf4f979b7612.jpg

不同的是,按鈕的顯示有一個0.5秒的延時。

upload/article/images/2020-11-26/ded2b59e8a5345d350ae778c3aac2ef2.jpg

這樣,一個簡單的過渡動畫就添加好了。接下來,我們就要點擊按鈕進入游戲了。那如何判斷按鈕被點擊了呢?在Scratch的事件中有一個當角色被點擊的語句,拖動它到代碼區就可以簡單快速的判斷角色是否被鼠標點擊了。

但是作為一名參加比賽的選手,我們要自己來實現點擊判斷的代碼,這樣才會顯得與眾不同,其實代碼實現起來也不難,就是兩個等待語句:

upload/article/images/2020-11-26/094d0a71125b23b6ae7c814a982e9baa.jpg

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

當兩個等待語句的條件都滿足之后,就會繼續執行下面的代碼,廣播進入并將文字與按鈕逐漸隱藏掉。

進入

點擊開始按鈕之后,并沒有立即開始游戲,而是播放了一段過渡動畫。

https://cdn.china-scratch.com/timg/191105/1542024925-6.gif

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

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

upload/article/images/2020-11-26/521502f692a15bf3528c9fe1ac1cbb2a.jpg

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

upload/article/images/2020-11-26/76e725acc1be1f738cc73e8871419c3a.jpg

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

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

upload/article/images/2020-11-26/1a5d74f143fa9a1b6c319f5e0d9f31e8.jpg

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

開始

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

https://cdn.china-scratch.com/timg/191105/1542031959-10.gif

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

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

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

upload/article/images/2020-11-26/abe8db68be9e6832b8a2d2a4488b66af.jpg

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

點1到點4是四個點坐標,它們為畫筆的畫線提供參考點,按下鍵盤的方向鍵可以移動點坐標,同時畫筆畫出的線也會跟著點移動。

比如點1的代碼:

upload/article/images/2020-11-26/701e3eba7b107b3c483c35d9fca87a6e.jpg

按下不同的方向鍵點1會向不同的方向移動,移動是通過改變角色的X或Y坐標實現的。

點2、點3、點4的代碼與點1是類似的,只是初始化的位置坐標不一樣而已。這四個點一起組成了一個矩形。

OK,點的坐標設置好了,那就該畫筆登場了。

upload/article/images/2020-11-26/7de479a23fbd76ea0b831cd1c45278b0.jpg

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

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

upload/article/images/2020-11-26/e2443cc3605058dfab992168bc4f697e.jpg

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

第一張拼圖一共有六個碎片,它們隨機分布在頁面中,并且根據三維坐標系近大遠小的特點,設置碎片為不同的大小,這樣就在二維平面中模擬出了三維空間的效果。

以第一個碎片的代碼為例:

upload/article/images/2020-11-26/49563a6b036573c8c7c89f6f08a7ca0b.jpg

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

重復執行里面的代碼和點1是類似的,按下不同的方向鍵角色會向不同的方向移動。不一樣的是碎片除了距離會移動之外,它的大小也會發生變化,這樣設置的原理是,在三維空間中物體朝觀察者方向移動時,它在觀察者眼中的投影是逐漸變大的,而反方向移動時它在觀察者眼中的投影是逐漸變小的,同學們可以試一試你觀察一個物體運動時是不是這樣子呢?

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

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

https://cdn.china-scratch.com/timg/191105/154205LD-16.gif

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

END

聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 永年县| 始兴县| 海阳市| 邛崃市| 三江| 铜川市| 无极县| 冕宁县| 富平县| 林州市| 贵定县| 辽阳县| 穆棱市| 泸西县| 牟定县| 麟游县| 宁陕县| 宁乡县| 平谷区| 龙陵县| 忻城县| 临朐县| 台北县| 璧山县| 平山县| 资兴市| 九江市| 银川市| 通城县| 石泉县| 张北县| 上杭县| 新建县| 田阳县| 博罗县| 习水县| 汉源县| 施甸县| 景德镇市| 彰化县| 潞西市|