資訊內容
Scratch全國少兒編程競賽獲獎作品解析《垃圾分類》上篇
Scratch全國少兒編程競賽
獲獎作品解析《垃圾分類》
本文介紹的作品是全國青少年創意編程與智能設計大賽創意編程比賽一等獎獲得者蘇子麟同學的最新參賽作品。
作品說明
這個作品的目的是普及垃圾分類。使用游戲的方式,讓大家更熟悉垃圾應該如何分類。游戲的目標就是正確識別垃圾類別,用正確的垃圾桶去打擊更多的垃圾。
游戲中的變量以及作用
變量名稱 |
作用 |
---|---|
b | 記錄是否開始游戲 |
發射武器類型 | 不同的垃圾桶發射不同顏色的武器 |
垃圾存在 | 判斷屏幕上是否有垃圾(屏幕上只能有一個垃圾) |
污染程度 | 不同的污染程度變換不同的背景 |
血量階段 | 不同的血量階段,血量的初始值是不同的 |
子彈存在 | 判斷屏幕上是否有子彈(一次只能發一個子彈) |
私有變量 |
|
a | 0到1的隨機數,用于定位垃圾隨機的出現位置 |
血量 | 存儲垃圾的血量值 |
從這篇文章開始果凍老師帶領同學們一起學習scratch全國競賽中獲獎同學的參賽作品,今天要介紹的是一等獎獲得者蘇子麟同學的作品《垃圾分類》。
果凍老師的文章分為兩個部分,這篇文章是上部,主要介紹游戲從點擊綠旗到游戲開始的過程。
好,我們開始。
點擊綠旗首先,點擊綠旗,點擊綠旗后會播放一個文字動畫,參與的角色只有一個就是文字:
這個文字的造型一共有五個,我們的任務就是一個一個的切換造型,實現逐個顯示文字的動畫效果,代碼是這樣寫的:
? ? ? ? ? ??
點擊綠旗之后,我們初始化了文字的位置、大小和造型,然后讓它顯示。
我們想要每次切換造型的同時演奏一下小軍鼓的聲音,所以一開始初始化了聲音的演奏速度。
循環的次數設置為3次,所以文字角色會切換3次造型,再加上初始化的造型和循環后再切換一次造型,文字角色總共顯示了5個造型,對應著文字一個一個顯示的動畫效果。
文字角色代碼的最后一行是廣播準備開始,那么你知道接收這個廣播的角色有幾個嗎?
一共有六個,四個垃圾桶和兩個按鈕:
四個垃圾桶的代碼非常簡單,就是當接收到準備開始的廣播后讓它們顯示出來。
而兩個按鈕的代碼就稍稍有點復雜了。
這段代碼中有兩個重復執行(也叫循環),第一個重復執行的作用是讓按鈕的虛像效果重復變化20次,每次減少5,那么總共減少20×5=100,由于按鈕虛像效果初始化為100,于是減少100后就為0了。
虛像效果為100時角色是透明看不見的,為0時是完全可見,所以第一個重復執行實現了按鈕從不可見到逐漸顯示的效果。
第二個重復執行實現了按鈕的鼠標懸停效果,當鼠標放在按鈕上時,按鈕會變大變成半透明的,鼠標移開時,按鈕恢復原狀。
在第二個重復執行的里面又嵌套了兩個重復執行,當鼠標放在按鈕上時,會執行第一個重復執行語句,每次會將按鈕的大小增加1,將虛像效果增加5,直到按鈕的大小成為25或者鼠標移開;當鼠標移開后會立即執行第二個重復執行語句,每次將按鈕的大小減少1,將虛像效果減少5,直到按鈕的大小成為20或者鼠標又放在按鈕上。
這兩個子重復執行都用到了重復執行直到語句,它的意思是當滿足語句后面的條件時,重復執行語句就不再運行了。
效果是這樣的:
接下來,我們就點擊PLAY按鈕,讓游戲開始吧!
點擊PLAY按鈕后,會廣播開始:
接收開始廣播的角色一共有五個,四個垃圾桶和一個按鈕:
我們點擊PLAY按鈕后,發現游戲并沒有立即開始,而是出現了垃圾桶自我介紹的小動畫,這類似于我們在電腦或者手機上玩游戲時開頭出現的動畫,這是它與其它作品相比的一個不同點,那么在比賽中給作品加入這種小動畫,能夠提高評委對作品的好感度。
垃圾桶自我介紹的動畫其實很簡單,就是在不同的時間點上讓不同的垃圾桶說話,比如紅色的垃圾桶它的代碼:
代碼有點長,但其實就是在一直說說說,自己介紹完別人再介紹,介紹完垃圾分類再介紹如何分類,我們就是會說話的垃圾桶!
同學們有沒有發現,垃圾桶自我介紹完了動畫并沒有結束,它又廣播了標志進,這說明標志的動畫又緊接著開始了。
四個垃圾桶對應有四個標志,它們分別從舞臺區的左上角滑行到垃圾桶的位置,然后又移出屏幕消失,比如綠色的廚余垃圾標志:
當點擊綠旗時,第一步初始化標志,將它移到舞臺區的左上角并隱藏。當標志接收到標志進的廣播后,顯示,然后開始滑行動畫,最后回到初始化的位置并再隱藏掉。
其余三個標志的滑行代碼也是類似的。
游戲的整個開頭動畫就是這樣的:
好了,第一部分內容,從點擊綠旗到出現PLAY按鈕再到垃圾桶與標志的動畫就介紹完了。下一篇文章中果凍老師會介紹如何讓垃圾桶發送子彈消滅垃圾,同學們敬請期待!
END想要獲得《垃圾分類》作品程序源代碼的同學可以轉發這篇文章到朋友圈或者3個50人以上家長群、學習群,通過公眾號將截圖發給果凍老師,果凍老師就發給你下載鏈接啦!
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
