資訊內(nèi)容
Scratch第十二講:克隆的妙處
前言
上一講我們講了如何用Scratch來(lái)做重力拋物線,今天我們繼續(xù)把它做成一個(gè)好玩的小游戲,通過(guò)讓青蛙跳起來(lái)吃掉空中飛的蟲(chóng)子。看看青蛙跳幾次能吃完所有的蟲(chóng)子。
首先看看CC哥做的程序效果
青蛙吃飛蟲(chóng)小游戲
看完之后,我們就發(fā)現(xiàn)今天程序的關(guān)鍵點(diǎn),就是如何創(chuàng)建這么多小飛蟲(chóng)呢?(CC哥比較懶,懶得去找飛蟲(chóng)的素材了,索性就用素材庫(kù)里的小蝴蝶代替吧)
那么飛蟲(chóng)怎么創(chuàng)建呢?難道有幾只飛蟲(chóng)就要?jiǎng)?chuàng)建幾個(gè)角色嗎?顯然不用,那樣的話編程會(huì)變得很復(fù)雜。Scratch提供了很強(qiáng)大的克隆功能,而且,克隆出來(lái)的蝴蝶都可以執(zhí)行單獨(dú)的腳本。
下面,CC哥就把程序進(jìn)一步做講解,看看在編程中會(huì)用到哪些技巧。
1、克隆的使用技巧
先創(chuàng)建一個(gè)蝴蝶的角色,然后在腳本中添加克隆語(yǔ)句,假設(shè)我們希望有八只蝴蝶,那么這段代碼就是把蝴蝶克隆八次。(隱藏命令是將蝴蝶的本體角色隱藏起來(lái),這樣空中飛舞的都是克隆體。)

然后我們執(zhí)行一下看看,發(fā)現(xiàn)屏幕上什么也沒(méi)有,原來(lái)本體被隱藏命令隱藏了,所以克隆出來(lái)的蝴蝶也都隱藏了。我們把隱藏命令去掉再執(zhí)行一遍代碼看看。

奇怪,蝴蝶倒是顯示出來(lái)了,怎么只有一個(gè)呀?我克隆的8個(gè)蝴蝶哪去了?不要急,其實(shí)你克隆的蝴蝶都在屏幕的一個(gè)位置上,全部重疊在一起了。你用鼠標(biāo)選中蝴蝶角色拖動(dòng)一下就發(fā)現(xiàn),下面還有蝴蝶。
2、克隆體腳本的應(yīng)用既然蝴蝶都克隆出來(lái)了,我們就希望針對(duì)這些克隆的蝴蝶來(lái)單獨(dú)寫(xiě)代碼,讓這8只蝴蝶長(zhǎng)得不一樣,有大有小,顏色也不同,而且還要飛來(lái)飛去不容易被青蛙吃掉,這樣才生動(dòng),才會(huì)好玩。
如何實(shí)現(xiàn)呢?這里就要用到一條關(guān)鍵命令:

這條命令是一個(gè)事件命令,當(dāng)克隆體被啟動(dòng)時(shí),執(zhí)行下列代碼。那讓我們看看CC哥怎么寫(xiě)這段代碼的。

第一部分:
1:這段代碼的第一句就先把克隆的蝴蝶分布到了不同的位置。(隨機(jī)數(shù)的應(yīng)用)
2:第二句和第三句用于隨機(jī)設(shè)定蝴蝶的大小和顏色。(還是隨機(jī)數(shù)的應(yīng)用)
3:8只蝴蝶不能都朝一個(gè)方向飛呀,所以飛行的方向也要隨機(jī)設(shè)定。(又是隨機(jī)數(shù))
注:這幾句程序都是在設(shè)定每只克隆蝴蝶的初始狀態(tài),全部設(shè)置完畢后,就可以顯示出來(lái)啦。
第二部分:
注:設(shè)置好之后,就可以讓蝴蝶開(kāi)始運(yùn)動(dòng)了,這個(gè)之前都學(xué)過(guò)了,用循環(huán)命令就行。但是在循環(huán)中有一個(gè)判斷,就是蝴蝶飛行的過(guò)程中是否碰到青蛙,如果碰到就要被吃掉,如果沒(méi)碰到就繼續(xù)飛行。
1:沒(méi)有碰到青蛙的腳本:
移動(dòng)步數(shù),加上之前學(xué)過(guò)的碰到邊緣就反彈。
2:碰到青蛙的腳本:
將蝴蝶數(shù)量減去1,然后判斷是否是最后一只,如果是就通知游戲結(jié)束(通過(guò)廣播命令發(fā)布消息)。如果不是,就刪除本克隆體后繼續(xù)執(zhí)行程序。
4、廣播命令和接收廣播命令廣播命令和接收廣播命令一般是配套使用,主要用于不同角色之間的信息傳遞,比如游戲的終止一般會(huì)用到廣播命令,當(dāng)一個(gè)角色觸發(fā)某種條件后,就可以在其腳本中通過(guò)廣播命令發(fā)布消息,通知所有的角色游戲結(jié)束了。而其他角色收到消息后就可以執(zhí)行相應(yīng)的腳本。

這里CC哥加了個(gè)game over的角色,當(dāng)收到游戲結(jié)束的廣播消息時(shí),就執(zhí)行顯示命令。
好了,總結(jié)一下,今天重點(diǎn)講得是克隆,以及克隆體的腳本。大家可以試試,這個(gè)命令在做游戲時(shí)很強(qiáng)大的,好好想想,是不是在玩的很多類似的游戲中是不是都會(huì)出現(xiàn)這種應(yīng)用,比如天上飛的敵機(jī),游戲中隨機(jī)跑來(lái)跑去的小人,小怪物。這個(gè)游戲大家可以再創(chuàng)意一下,按照你自己的想法去設(shè)計(jì)。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除
- 上一篇
Scratch 作品欣賞:沙漠歷險(xiǎn)記(小學(xué)4-6年級(jí)組)
“沙漠歷險(xiǎn)記” - 小學(xué)4-6年級(jí)組學(xué)生作品,通過(guò) Scratch 平臺(tái)制作完成,是一個(gè)在電腦上用鼠標(biāo)控制操作的互動(dòng)游戲。作者:Sun Yong Heng(小學(xué)5年級(jí))
- 下一篇
Scratch 基礎(chǔ)教學(xué)|第十課: Scratch基本組件之偵測(cè)類功能塊詳解
hi,大家晚上好。上一節(jié)課主要給大家介紹了Scratch控制類功能塊可實(shí)現(xiàn)的功能及每一個(gè)控制類功能塊的具體用途及如何使用。 本節(jié)課主要和大家一塊了解并學(xué)習(xí)偵測(cè)類功能塊可實(shí)現(xiàn)哪些功能及每一個(gè)偵測(cè)類功能塊的具體使用。 本節(jié)課的課程目標(biāo)如下:
