竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

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

資訊內(nèi)容

Scratch全國少兒編程競賽獲獎作品《穿越時空的大戰(zhàn)》解析下篇

極客小將2020-11-21-
Scratch全國少兒編程競賽 獲獎作品解析 《穿越時空的大戰(zhàn)》 本文介紹的作品是全國青少年創(chuàng)意編程與智能設(shè)計大賽創(chuàng)意編程比賽一等獎獲得者齊嘉懿同學(xué)的參賽作品。 作品說明 游戲主人公在名偵探柯南的幫助下,體驗了最新的科技發(fā)明——AI機器人和

Scratch全國少兒編程競賽

獲獎作品解析
《穿越時空的大戰(zhàn)》

本文介紹的作品是全國青少年創(chuàng)意編程與智能設(shè)計大賽創(chuàng)意編程比賽一等獎獲得者齊嘉懿同學(xué)的參賽作品。

作品說明

游戲主人公在名偵探柯南的幫助下,體驗了最新的科技發(fā)明——AI機器人和時光機。乘坐時光機回到過去之后,在AI監(jiān)測系統(tǒng)的幫助下,還原出了事實的真相,并成功帶領(lǐng)自家花園里的植物利用高科技裝備戰(zhàn)勝僵尸,保衛(wèi)家園的故事。
游戲中運用到了變量、循環(huán)嵌套、克隆體、列表、字符串連接等功能,并用到了多種算法,包括遍歷算法、排序算法、求和、求平均值和最值等算法。
另外,游戲中還有很多原創(chuàng)的角色,如太陽花,AI防御網(wǎng)等。

正文upload/article/images/2020-11-21/e9ef530749b7f381cb1ec8128b7e926b.jpg

在上一篇文章中,我們完成了名偵探柯南發(fā)出的能量收集的任務(wù),開啟了時光機,接下來我們就要穿越時空回到過去,參與一場僵尸反入侵的戰(zhàn)斗,保衛(wèi)媽媽的臥室。大戰(zhàn)即將開始,你準備好了嗎,快點乘上時光機吧!

upload/article/images/2020-11-21/20a7e1eaa158b8de5ea3f85f54e16ef2.jpg

點擊“乘坐時光機”按鈕之后,游戲立即切換到時光機的場景,我們的游戲主角乘坐時光機正在穿越時空。咦,這段臺詞怎么這么熟悉?

upload/article/images/2020-11-21/479f789d9be7caefb1887d62edb64344.jpg

時光機著陸之后,入侵者立刻來襲。唉?這不就是植物大戰(zhàn)僵尸嗎!哈哈,相信同學(xué)們一定都玩過這個游戲,這里原來就是簡化版的植物大戰(zhàn)僵尸呀。大家都會玩這個游戲,但是可不一定知道如何用Scratch來制作出這個游戲。那接下來,果凍老師就和大家一起看看這個游戲是如何實現(xiàn)的吧。

當(dāng)背景換成草坪

植物大戰(zhàn)僵尸的游戲背景是一片草坪,所以僵尸呀、土豆呀、太陽呀都會響應(yīng)背景換成草坪這個事件。

upload/article/images/2020-11-21/899609bcd2d831fa700c2fcbb8e2da85.jpg

不用老師介紹,大家肯定知道這些都是植物大戰(zhàn)僵尸游戲中的角色。首先我們來看游戲中最重要的角色:僵尸。它們一個接一個的從屏幕右側(cè)出現(xiàn)并向左移動,最終的目的就是進入并搞亂媽媽的房間。

upload/article/images/2020-11-21/6276377fa8302110ffe032c1fad33931.jpg

游戲開始后,每隔3秒克隆一個普通僵尸,一共克隆出10個。

僵尸一波一波的很可怕,我們必須抓緊時間消滅它們,在僵尸行走的過程中,我們有兩種方法可以消滅它們,第一種方法就是使用堅果:

upload/article/images/2020-11-21/421ade444cf941058342a5e65146ed40.jpg

代碼中設(shè)置了移到x:238,所以僵尸會固定的出現(xiàn)在屏幕的右側(cè),但是y坐標設(shè)置為-121和107之間的隨機數(shù),所以僵尸在縱向上是隨機出現(xiàn)的,它會朝屏幕左側(cè)一直行走,每一次行走的步數(shù)也是在5步到10步之間隨機的,所以僵尸的速度有快有慢,行走的過程中如果被堅果砸到,那么僵尸數(shù)量這個變量的值就會減1,代表這個僵尸被消滅掉了。

如果僵尸走到屏幕最左邊了還沒有碰到堅果,那么清除車就會出動推走僵尸,這是消滅僵尸的另一種方法,但是每一行只有一個清除車,出動一次就會少一個。

upload/article/images/2020-11-21/6da7bf12302be9a934e9dbf89ea07084.jpg

我們知道了使用堅果可以消滅僵尸,那堅果是如何產(chǎn)生的呢?這就涉及到了其中的這幾個角色:

upload/article/images/2020-11-21/844b97f35f25cf345c6f53b8c164d2e9.jpg

太陽花每隔一段時間會產(chǎn)生小太陽,收集小太陽到陽光銀行(SunBank)中,通過陽光銀行可以購買堅果卡片,點擊堅果卡片就會變成堅果。這是正常產(chǎn)生堅果的邏輯,但是由于我們參加的并不是游戲制作比賽,所以簡化版的游戲中收集太陽花和購買堅果卡片都是電腦自動運行的。

那需要我們寫代碼實現(xiàn)的就是產(chǎn)生小太陽和卡片變堅果的這兩個過程了。

首先來看產(chǎn)生小太陽的代碼。

upload/article/images/2020-11-21/0aa876b17a060020f12b052b5c3b0d96.jpg

游戲開始后,每隔1至2秒就會產(chǎn)生一朵小太陽,并且這朵小太陽從太陽花的位置向上飛到陽光銀行的位置。

upload/article/images/2020-11-21/8969fb259eb9ba884b4b02aaa2d6c90c.jpg

小太陽通過滑行語句飛向陽光銀行,然后增加了sun變量的值,最后消失。

卡片變堅果的代碼就稍稍有點復(fù)雜了,代碼中需要完成鼠標點擊的判斷以及土豆?jié)L動撞擊消滅僵尸的效果。

游戲開始后,每間隔3秒鐘會自動克隆出一張堅果卡片:

upload/article/images/2020-11-21/2536ad53f58b13d4e9302978cafb51f8.jpg

堅果卡片會沿著頂部的卡片框一直向右滑動,直到移動到右邊框或者碰到其它的卡片才停止下來。

upload/article/images/2020-11-21/7344c8498751c812b5d3ceeb164810e5.jpg

在重復(fù)執(zhí)行的語句里面有一條等待的語句,這條等待語句的條件是角色X坐標>60(移動到方框的最右邊)或者碰到灰色(碰到其它卡片)不成立,也就是說如果條件不成立,就會一直運行重復(fù)執(zhí)行語句,卡片會一直向右移動。而當(dāng)?shù)却Z句的條件成立時,代碼就會運行到等待語句這里停止不再執(zhí)行重復(fù)語句,也就是說卡片會停下不再移動了。

如果我們繼續(xù)用鼠標點擊堅果卡片的話,就會觸發(fā)克隆堅果的命令:

upload/article/images/2020-11-21/ef88828d71feff60255dbadf5b8bf1c0.jpg

克隆的代碼很簡單,僅僅將堅果顯示出來。

upload/article/images/2020-11-21/d1bb969df40b81b706e2485fee86fce9.jpg

而真正的處理邏輯代碼是寫在wall-nut這個廣播中的。

upload/article/images/2020-11-21/58757ac064a7b9f43d1080d298d93577.jpg

wall-nut廣播是點擊堅果卡片后發(fā)出的,鼠標松開后,首先堅果初始化顯示第一個造型,并且在點擊鼠標前一直跟隨著鼠標的位置移動。在重復(fù)執(zhí)行語句中拖入移到鼠標指針語句就可以實現(xiàn)角色跟隨鼠標的效果。

當(dāng)我們再次點擊鼠標后,堅果通過移到XY語句在鼠標指針的位置處放下,但是這里沒有完全按照鼠標指針的位置放置,堅果的X坐標通過了一個四舍五入和乘除的運算語句稍稍前移了一下,這樣堅果的初始位置會更加的合理。

接下來,在代碼中嵌套了兩個如果那么語句,第一個如果那么語句判斷堅果的位置不能放在舞臺的邊緣,第二個如果那么語句判斷堅果的位置必須是在紅線的左邊,如果這兩個條件不滿足的話,就不會執(zhí)行它們里面的語句。

它們里面放置了一個重復(fù)執(zhí)行語句,這個重復(fù)執(zhí)行語句的作用就是讓堅果不停的向右滾動,直到舞臺右側(cè)。向右移動通過移動5步語句實現(xiàn),滾動的效果通過不斷切換下一個造型實現(xiàn),要注意的是,如果堅果變到了最后一個造型的話,我們需要手動再將它切換到第一個造型,這樣堅果的滾動效果才會是循環(huán)不停的。在舞臺的最右側(cè)有一個黃色的豎線角色,重復(fù)執(zhí)行語句的條件就是判斷堅果是否碰到了這條黃色豎線,如果碰到了就結(jié)束重復(fù)執(zhí)行語句,繼續(xù)執(zhí)行后面的隱藏語句,將堅果隱藏掉。

堅果滾動過程中碰到僵尸的代碼邏輯我們在僵尸角色中已經(jīng)介紹過了。

好了,以上就是產(chǎn)生太陽、收集堅果卡片、使用堅果消滅僵尸的整個過程,經(jīng)過老師的介紹,游戲的過程是不是就很清晰了?相信同學(xué)們對代碼都已經(jīng)搞明白了,如果還有不懂的地方可以再返回去多看看幾遍。

https://cdn.china-scratch.com/timg/191122/143SH4P-15.gif

游戲中一共會出現(xiàn)20個僵尸,當(dāng)我們把這些僵尸都消滅完后,游戲的難度會提升,接著出現(xiàn)好多的僵尸坦克,這些坦克的速度可比僵尸快多了,堅果對于坦克來說無疑是雞蛋碰石頭,毫無作用,所以我們推出威力巨大的椰子大炮,發(fā)射椰子炮彈來消滅坦克。

坦克來啦

upload/article/images/2020-11-21/e3c0d2f2b698c933d9a110fa32d75a3c.jpg

以上就是坦克大戰(zhàn)所涉及到的角色,其中僵尸坦克角色與上面僵尸的代碼非常類似,而椰子炮-炮架子角色的代碼則非常簡單,就不在這講解它們了。而剩下的兩個角色炮筒和炮彈老師則要說一說。

在堅果卡片的代碼中,我們知道要讓一個角色隨著鼠標移動可以在重復(fù)執(zhí)行語句中加入一個移到鼠標指針的語句。如果角色不是隨著鼠標移動而是要它固定在某個位置只是面向鼠標指針的位置轉(zhuǎn)動該怎么做呢?有同學(xué)想到了,就是把移到鼠標指針語句換成面向鼠標指針語句:

upload/article/images/2020-11-21/c2f146bd918efd7edf8826b9967d1c95.jpg

這樣,炮筒就會固定在舞臺區(qū)的左側(cè),并且隨著鼠標指針的位置轉(zhuǎn)動,隨時準備著朝向鼠標的位置發(fā)射炮彈。

https://cdn.china-scratch.com/timg/191122/143ST425-18.gif

哇,坦克來的好快啊!我們必須趕緊消滅它們!

upload/article/images/2020-11-21/448d981a852c4e85fa5e33fb15e08419.jpg

點擊鼠標之后,代碼會克隆出一顆炮彈,然后這顆炮彈會從炮筒的位置向鼠標指針的位置發(fā)射出去,如果炮彈在運行的過程中碰到了坦克就會將坦克消滅掉,最后它觸碰到舞臺的邊緣后被刪除,這顆炮彈的使命就完成了。

upload/article/images/2020-11-21/3c0905b1d9813726bcde6ec7b88646ad.jpg

二十幾輛僵尸坦克來勢洶洶,看似威猛,但是在我們的一頓操作之下也都被消滅掉了。

巨人僵尸出現(xiàn)

可是,游戲并沒有結(jié)束,屏幕右側(cè)又走出來一個巨人僵尸,什么!居然還有終極Boss,這是要挑戰(zhàn)我們的手速嗎?可是,無論我們點擊鼠標、鍵盤如何操作都沒有反應(yīng),只能眼睜睜的看著這個巨人僵尸走過來一顆一顆的吞噬掉我們的堅果。

https://cdn.china-scratch.com/timg/191122/143S96361-21.jpg

巨人僵尸一步步的向房間靠近,遇到堅果(每個堅果的右側(cè)都有一個藍色的小點)就將它吃掉,我們只能在一旁看著悲劇發(fā)生,束手無策,這可怎么辦呀?

突然,游戲主角想到,在他乘坐時光機的時候,名偵探柯南同時為他帶來了一件巨型的防御武器,名字好像叫做AI防御網(wǎng),面對這個無法控制的巨人僵尸,是時候請出這個終極武器了!

https://cdn.china-scratch.com/timg/191122/143S935A-22.jpg

這個防御網(wǎng)呢,實際上是一個五邊形多層網(wǎng)狀結(jié)構(gòu)圖案,是通過Scratch軟件的畫筆擴展模塊繪制出來的,圖案的樣子是這樣:

https://cdn.china-scratch.com/timg/191122/143Sa615-23.jpg

它由五個五邊形組成了一個花瓣的圖案,然后由內(nèi)向外一層一層堆疊起來。那如何使用代碼來畫出這樣的圖案呢,下面我們就一步一步來實現(xiàn)它。

第一步,定義好邊數(shù)、層數(shù)、角度這三個變量的值。

https://cdn.china-scratch.com/timg/191122/143Sa404-24.jpg

邊數(shù)設(shè)置我們要畫的圖案是幾邊形,每一層幾個圖案,很明顯我們的圖案是五邊形,每一層都有五個。

層數(shù)設(shè)置圖案一共重復(fù)繪制幾次,這里重復(fù)6次,也就是說有6層。

角度設(shè)置畫筆在畫第一筆時所面向的方向。

在繪制的過程中還涉及到一個變量,叫做邊長,它設(shè)置五邊形每個邊的長度,并且每繪制一層這個邊長的值就會增大,這樣五邊形一層就比一層的大。

第二步,使用畫筆畫出一個五邊形。

https://cdn.china-scratch.com/timg/191122/143S95192-25.jpg

代碼中,有一個重復(fù)執(zhí)行語句,它里面的移動邊長步語句可以畫出一條線,畫完后畫筆向左旋轉(zhuǎn)360÷5=72度,這樣重復(fù)執(zhí)行5次,就完成了一個五邊形的繪制。

https://cdn.china-scratch.com/timg/191122/143S922V-26.jpg

第三步,在這個重復(fù)執(zhí)行的外面再套一層重復(fù)執(zhí)行,每畫完一個五邊形畫筆同樣左轉(zhuǎn)72度。

https://cdn.china-scratch.com/timg/191122/143T05D0-27.jpg

這樣,五個五邊形就組成了一個類似花瓣的圖案。

https://cdn.china-scratch.com/timg/191122/143T052J-28.jpg

第四步,在兩層重復(fù)執(zhí)行的外面再嵌套一層重復(fù)執(zhí)行,這次重復(fù)的次數(shù)是變量層數(shù)的值,也就是說我們要畫出6層的花瓣圖案。

https://cdn.china-scratch.com/timg/191122/143T01T9-29.jpg

每一層五邊形的顏色與邊長一樣也是變化的,這樣,強大的AI防御網(wǎng)最終就繪制完成了,代碼最后廣播巨人僵尸死去,可怕的終極Boss終于被我們收拾掉了,激烈的反入侵戰(zhàn)斗也停止了,我們完成了名偵探柯南賦予的任務(wù),成功的保衛(wèi)住了媽媽的房間!

https://cdn.china-scratch.com/timg/191122/143T01036-30.gif

總結(jié)

在這篇文章中,我們學(xué)習(xí)了《穿越時空的大戰(zhàn)》這部作品的后半部分,這部分內(nèi)容雖然不像上半部分內(nèi)容那樣有各種各樣讓人驚訝的編程技術(shù)和效果,但是它為我們展示了一個完整的植物大戰(zhàn)僵尸游戲的開發(fā)過程,這個過程中使用了很多的判斷語句,很多的重復(fù)執(zhí)行語句,還有各種的廣播、變量這些角色連接的方式,通過這個過程充分展現(xiàn)了參賽者的邏輯思維能力。何時僵尸應(yīng)該上場,何時坦克應(yīng)該出現(xiàn),如何使用堅果消滅僵尸,如何繪制防御網(wǎng)的圖案,同學(xué)們不要小看這些內(nèi)容,如果說上篇文章是編程特技的展示,那這篇文章才是編程基本功的體現(xiàn),這些基本功看似平淡無奇,卻不是一天兩天能練成的,千里之行始于足下,沒有扎實的基本功就無法走的更遠,要想獲得全國比賽的一等獎,努力學(xué)好這篇文章的內(nèi)容才是最應(yīng)該的,加油吧,同學(xué)們!

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

預(yù)約試聽課

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

主站蜘蛛池模板: 91精品国产欧美一区二区 | 精品国产一区二区三区性色av | 亚洲一二三在线观看 | 日韩毛片免费视频一级特黄 | 福利片在线观看 | 精品国内| 久久国产精品99久久久久久牛牛 | 一区二区中文字幕 | 国产精品国产三级国产专播品爱网 | 91嫩操| 精品在线 | 成人免费a视频 | 日韩av在线一区二区三区 | 在线免费观看黄色av | 国产精品亚洲一区二区三区在线 | 黄色精品| 欧美一区二区三区四区五区 | 精品久久久久久久久久久 | 国产精品欧美在线 | 精品国产一区二区三区久久久 | 亚洲视频在线观看 | 日本天堂在线 | 福利在线电影 | 久久免费一区 | 99久久精品视频免费 | 黄网免费 | 国产一区不卡 | 精品一区二区三区在线视频 | 欧美午夜精品一区 | 在线观看一区 | 欧美a影院 | 国产精品美女久久久久aⅴ国产馆 | 久久一二三区 | 亚洲电影一区 | 久久久麻豆 | 国产综合第一页 | 日韩一区二区三区视频 | 国产成人三级 | 国产欧美精品一区 | 男女爱爱免费视频 | 国产网红女主播免费视频 |