Scratch少兒編程案例(綠化城市)——培養(yǎng)探究型學(xué)習(xí)態(tài)度(含配套素材包)

小朋友們是未來(lái)的主人,保護(hù)環(huán)境人人有責(zé)!
現(xiàn)在,從綠化自己所在的城市開(kāi)始吧!
第一部分 課程簡(jiǎn)介

一、知識(shí)要點(diǎn):
1、坐標(biāo)與隨機(jī)數(shù)的運(yùn)用;
2、克隆相關(guān)知識(shí)的運(yùn)用;
3、判斷與循環(huán)結(jié)構(gòu)的運(yùn)用。
二、作品預(yù)覽:
1、點(diǎn)擊開(kāi)始按鈕,地上長(zhǎng)出小草,開(kāi)出小花;天上直升飛機(jī)在從左向右飛行,飛到右邊之后,回到左邊繼續(xù)飛行;
2、按下空格鍵,直升飛機(jī)向下灑水,水滴開(kāi)始降落;
3、花草被澆水之后會(huì)長(zhǎng)大一些;
4、直升飛機(jī)碰到花草,程序結(jié)束。
演示視頻

第二部分?作品初始化

本文提供的初始化文件是指沒(méi)有代碼的作品文件。包括構(gòu)建好的界面,以及設(shè)定好的屬性。打開(kāi)Scratch 3.0,依次點(diǎn)擊“文件”-->“從電腦中上傳”,選擇下載好的初始化文件,打開(kāi)即可導(dǎo)入初始化文件。(到演示視頻簡(jiǎn)介處,獲取初始化文件。)
一、角色列表:
本節(jié)課作品共有四個(gè)角色,分別為直升飛機(jī)、小花、小草和水滴。所有屬性都可根據(jù)個(gè)人喜好進(jìn)行設(shè)定,結(jié)合初始化文件自己DIY一下吧。
二、舞臺(tái)背景:
舞臺(tái)背景是一張卡通風(fēng)格的城市圖片,也可自行上傳喜歡的背景圖。
第三部分 任務(wù)解讀

一、直升飛機(jī)解讀:
直升飛機(jī)不停的從左往右循環(huán)飛行(需要用到循環(huán)結(jié)構(gòu)),飛行速度均衡(x坐標(biāo)均勻變化),飛行高度固定(y坐標(biāo)固定不變);如果碰到小花、小草(需要用到偵測(cè)語(yǔ)句和判斷結(jié)構(gòu)),就宣布停止程序。
雖然,按下空格鍵,直升飛機(jī)要執(zhí)行灑水操作;但是,實(shí)際控制水滴下落的是水滴自身,而不是直升飛機(jī)。也就是說(shuō),直升飛機(jī)只是形式上的命令者,水滴才是實(shí)際上的執(zhí)行者。
編程的本質(zhì)就是用代碼去控制角色,并作出響應(yīng)。若要實(shí)現(xiàn)灑水操作,實(shí)質(zhì)上是控制水滴降落,所以,要編寫(xiě)灑水代碼的角色是水滴,而非直升飛機(jī)。
二、小花解讀:
開(kāi)始程序之后,地上開(kāi)出五朵小花,種類(lèi)不一,位置不同;如果碰到直升飛機(jī)灑下的水滴,就會(huì)長(zhǎng)大一些。
請(qǐng)大家思考以下幾個(gè)問(wèn)題:
1、小花角色只有一個(gè),如何開(kāi)出五朵?
2、怎么變出不同種類(lèi)的小花?
3、如何控制開(kāi)花的位置?
4、小花是怎么長(zhǎng)大的?
大家先獨(dú)立思考一下,拿到初始化文件之后,動(dòng)手操作一下,實(shí)踐一下自己的想法,驗(yàn)證一下自己的思路,能否解決以上問(wèn)題。然后,再繼續(xù)查看本文的解讀,比比看:是你的想法更優(yōu)秀,還是本文的思路更簡(jiǎn)單?
本文的解決思路如下:
1、隱藏本體(小花角色),結(jié)合循環(huán)結(jié)構(gòu),克隆五次自己,開(kāi)出五朵小花。
2、克隆體啟動(dòng)之后,通過(guò)隨機(jī)數(shù)改變?cè)煨?,?shí)現(xiàn)小花種類(lèi)的變換。
3、通過(guò)隨機(jī)數(shù),改變克隆體的x坐標(biāo),控制水平位置。
4、結(jié)合循環(huán)結(jié)構(gòu),偵測(cè)小花與水滴是否碰到,如果碰到,小花的大小增加,同時(shí)y坐標(biāo)增加,實(shí)現(xiàn)長(zhǎng)高效果。
三、小草解讀:
原理和小花角色相同,操作類(lèi)似。
四、水滴解讀:
水滴的任務(wù)很簡(jiǎn)單:隨著空格鍵的按下,從直升飛機(jī)所在的位置開(kāi)始降落,形成直升飛機(jī)灑水的效果;落到地面上自動(dòng)消失,落到小花、小草上,執(zhí)行澆水操作,然后消失。
回顧小草的實(shí)現(xiàn)方法,思考一下:只有一個(gè)水滴角色,怎么實(shí)現(xiàn)不停的灑水呢?沒(méi)錯(cuò),也是克隆!不同的是,小草角色使用循環(huán)結(jié)構(gòu)來(lái)控制克隆,這里則使用偵測(cè)空格鍵是否按下進(jìn)行控制克隆。如果空格鍵被按下,就克隆自己。
水滴的克隆體啟動(dòng)之后,主要有兩項(xiàng)任務(wù):一是降落,二是澆水。
使用條件循環(huán)結(jié)構(gòu),通過(guò)不停的降低y坐標(biāo)實(shí)現(xiàn)降水效果,當(dāng)y坐標(biāo)小于-160(水滴到達(dá)地面時(shí)y坐標(biāo)的臨界值)時(shí),刪除此克隆體。
在條件循環(huán)體內(nèi),加入判斷語(yǔ)句,如果碰到小花、小草,就切換成澆水造型,執(zhí)行澆水操作,然后刪除此克隆體。
第四部分?編寫(xiě)代碼

一、直升飛機(jī)代碼:

第1行:觸發(fā)事件;
第2~5行:初始化操作;
第6~8行:持續(xù)飛行操作;
第9~10行:飛到右端,自動(dòng)回到左端,繼續(xù)飛行;
第11~13行:如果碰到小花或小草,發(fā)出警報(bào),3秒鐘后,停止程序。
二、小花代碼:
小花角色的代碼共有兩段。第一段代碼完成初始化操作、以及克隆五次自己;第二段代碼負(fù)責(zé)啟動(dòng)克隆體,并實(shí)現(xiàn)長(zhǎng)大效果。
1、第一段代碼如下:

第1行:觸發(fā)事件;
第2~3行:初始化操作;
第4~6行:每隔0.3秒,克隆一次自己,總共克隆5次。
2、第二段代碼如下:

第1行:觸發(fā)事件;
第2行:克隆體初始化操作;
第3行:使用隨機(jī)數(shù)設(shè)定克隆體的位置;
第4行:使用隨機(jī)數(shù)設(shè)定造型,實(shí)現(xiàn)小花種類(lèi)變換;
第6行:在碰到水滴之前,程序一直等待;
第7~8行:碰到水滴之后,大小增加10,y坐標(biāo)增加10,實(shí)現(xiàn)長(zhǎng)大效果;
第9行:長(zhǎng)大之后等待1秒,控制小花被澆水的最大頻率。
三、小草代碼:
小草角色的代碼也是兩段,功能作用和小花相似,只給出代碼,細(xì)節(jié)不再贅述。
1、第一段代碼如下:

2、第二段代碼如下:

四、水滴代碼:
水滴角色的代碼共有三段。第一段代碼完成初始化操作;第二段代碼負(fù)責(zé)下達(dá)灑水指令;第三段代碼執(zhí)行灑水操作。
1、第一段代碼如下:

第1行:觸發(fā)事件;
第2~3行:狀態(tài)、大小初始化操作。
2、第二段代碼如下:

第1行:觸發(fā)事件(按下空格鍵下達(dá)灑水指令);
第2行:造型初始化操作;
第3行:克隆自己(讓克隆體執(zhí)行灑水)。
3、第三段代碼如下:

第1行:觸發(fā)事件;第2行:移到直升飛機(jī)處,讓水滴從直升飛機(jī)上開(kāi)始降落;
第3行:因?yàn)樗蔚谋倔w是隱藏狀態(tài),其克隆體也是隱藏狀態(tài),所以這里要執(zhí)行顯示操作,不然看不到水滴降落;第4行:為水滴添加滴落聲效;
第5~6行:條件循環(huán),不停降低y坐標(biāo),實(shí)現(xiàn)水滴降落效果;
第7~12行:如果水滴碰到小花或碰到小草,令水滴再下降一次,然后播放澆水成功的聲效,并切換成2造型(澆水成功的造型),等待0.5秒能讓澆水操作表現(xiàn)的更加清楚,最后刪除此克隆體;
第13行:如果條件循環(huán)得到完整執(zhí)行,說(shuō)明此水滴克隆體沒(méi)有落到花草上,最終落到地面上,此時(shí),也要?jiǎng)h除此克隆體。
五、舞臺(tái)代碼:

舞臺(tái)代碼很簡(jiǎn)單,重復(fù)播放一段背景音樂(lè)。
第五部分 探究與改良
一、要想開(kāi)出10朵小花,該怎么修改代碼?
二、若要小花距離相等,該怎么修改代碼?
三、就算程序處于停止?fàn)顟B(tài),按下空格鍵依然可以灑水,這是一個(gè)bug,該如何修復(fù)?
關(guān)于探究改與良部分,希望大家認(rèn)真思考!本文提供的作品源碼及改良源碼僅供參考,期待大家探究更優(yōu)的改良程序!
加油吧,后浪!