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

極客小將

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

資訊內(nèi)容

Scratch第四十八講:制作冰激凌

極客小將2020-11-26-
———— / 作品賞析 / ———— 之前在18講的時候,有給大家做了一個作品賞析,后來有學(xué)員提出來,想了解這個程序怎么做的,那么今天CC哥在這里給大家專門講一下這個小程序。(本游戲代碼來自官網(wǎng),非原創(chuàng))

———— / 作品賞析 / ————

之前在18講的時候,有給大家做了一個作品賞析,后來有學(xué)員提出來,想了解這個程序怎么做的,那么今天CC哥在這里給大家專門講一下這個小程序。(本游戲代碼來自官網(wǎng),非原創(chuàng))

https://cdn.china-scratch.com/timg/191106/155343L38-0.gif

這個小游戲并不難,就是用一個空格鍵操作,按住空格鍵不放,冰激凌就變大,松手,冰激凌就落下來,每次放的冰激凌球必須比上一個小,否則冰激凌塔就會倒下來。程序雖然不難,但是美工和創(chuàng)意,尤其是所有的細節(jié)都是很不錯的,下面CC哥帶大家一起欣賞一下。

程序的邏輯不復(fù)雜,那么咱們就按照執(zhí)行的步驟一步一步來看啦。

首先先看看有幾個角色,每個角色有幾個造型。

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

程序一共有5個角色,第一個肯定是冰激凌的球了,第二個是冰激凌筒,第三個是游戲字幕,第四個是開場圖片,第五個是用來選擇游戲難度的。

upload/article/images/2020-11-26/201aaf09456864e59cdfbf0924f8c3f5.jpg

這是個日本人做的游戲,CC哥不懂日文,所以大家以后沒事寫程序如果要走國際路線,一定要用英文哦,否則復(fù)雜的游戲?qū)嵲跊]法看哦https://cdn.china-scratch.com/Public/Home/images/grey.gif

1:先從開場畫面看起吧:

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

這是游戲的封面,停留0.5秒就逐漸消失。腳本也很簡單:

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

2:顯示游戲菜單

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

這個游戲菜單涉及了兩個角色,一個是游戲的文字角色,一個是small,medium,large的按鈕菜單。

文字這個角色主要是用來控制在不同的時刻顯示不同的背景文字。這角色的代碼除了處理好文字的顯示和隱藏,同時還處理了游戲結(jié)束之后的得分顯示部分,代碼后面再提。

重點講一下按鈕的代碼。

upload/article/images/2020-11-26/9917e19a71b37d63f4aa7d54a5a701d7.jpg

雖然有三個按鈕,但是只用了一個角色,克隆的技巧。同時這里面還用了一個私有變量的技巧,就是其中***ID這個變量是個只屬于本角色的變量。(變量也用日本字https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif)。

upload/article/images/2020-11-26/201aaf09456864e59cdfbf0924f8c3f5.jpg

私有變量的用法,是在每次克隆完,都會對私有變量進行重新賦值,那么也就是每一個克隆體的私有變量的值都是不同的。當(dāng)我們在進行偵測時,比如當(dāng)角色被點擊這個事件所對應(yīng)的代碼中,我們就可以用這個不同的變量值來對應(yīng)不同的操作。在這個程序里,不同的私有變量值就對應(yīng)了不同的冰激凌筒的大小。

upload/article/images/2020-11-26/79ae173ea02031c5ceac5cdb7263c010.jpg

這個ID乘以50+150就是冰激凌筒的大小。

3:選擇冰激凌筒的大小后顯示:

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

我們看一下冰激凌筒的代碼和造型:

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

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

當(dāng)程序開始時,把冰激凌筒隱藏起來,造型顯示冰激凌筒的造型。當(dāng)收到開始的消息的時候,把筒的大小設(shè)置成根據(jù)之前按鈕算出來的大小,加個10的目的是為了筒比最大的冰激凌球還要大一點吧。(這個程序員好細致https://cdn.china-scratch.com/Public/Home/images/grey.gif

最厲害的就是最下面這段代碼!讓CC哥也佩服不已!https://cdn.china-scratch.com/Public/Home/images/grey.gif

不得不說,多看一些程序是能學(xué)到一些竅門。這段代碼的目標(biāo)很簡單,就是處理當(dāng)冰激凌多的時候冰激凌筒下移的過程。

https://cdn.china-scratch.com/timg/191106/1553492614-17.gif

看出神奇了沒?有沒有注意到冰激凌筒慢慢的徹底下移到了屏幕之外?!CC哥看到這里差點沒一口血噴出來!我做了這么多程序,一直沒有辦法讓一個角色完全移除屏幕之外!這個哥們怎么實現(xiàn)的?!?

upload/article/images/2020-11-26/756d48f18b958cc38978c6fef98a3064.jpg

仔細閱讀了這個兄弟的程序,原來技巧在這里。他在角色下降的過程中不斷地切換角色造型,然后就實現(xiàn)了這個下移出屏幕的效果。同時下移的過程只顯示筒的造型,而且沒有造型切換的閃爍。https://cdn.china-scratch.com/Public/Home/images/grey.gif?為此CC哥馬上用scratch3來做了驗證。事實上確實可行。

正常來講,如果只是單純的通過降低y的坐標(biāo)來下移角色,不論如何做,不論你的角色造型初始位置放的如何靠下,在下移到一定程度后,角色總留一部分在屏幕上沒法完全下移到屏幕外。但是如果你用了這位兄弟的方法,就可行了!大家自己試試。當(dāng)然,也不是無限下移的,大家需要調(diào)節(jié)一下角色的大小和在造型里的初始位置。至于是什么原理,CC哥也沒看scratch的源代碼,所以不知道bug出在哪里。反正大家掌握這個小技巧就OK啦!https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif

4:制作冰激凌

這個游戲的輸贏的關(guān)鍵就是每次制作的冰激凌球一定要比上一個小一點,這樣才能疊上去,如果一旦比上一個球大,那么就會跌落下來,游戲也就結(jié)束了。制作冰激凌的代碼都在冰激凌的角色里。

https://cdn.china-scratch.com/timg/191106/15534aR4-22.jpg

冰激凌的代碼很多,我們一部分一部分來看:

https://cdn.china-scratch.com/timg/191106/155350Cb-23.jpg

冰激凌一個一個往下落也是才用了克隆的技巧。

‘’克隆OK?‘’這個變量是用來判斷一個冰激凌處理的過程是否結(jié)束。如果這個變量等于1,才準(zhǔn)許克隆操作,也就是準(zhǔn)許開始下一個冰激凌球的制作過程。另外‘’克隆‘’這個變量是角色的私有變量,程序里設(shè)置這個變量主要是想?yún)^(qū)分克隆體與本體的區(qū)別,也就是在執(zhí)行某些操作的時候,只會涉及到克隆體,而不會涉及到本體。(在scratch里面經(jīng)常用一些變量來表示狀態(tài),通過狀態(tài)的判斷來控制程序的運行路徑或執(zhí)行對象的選擇)

克隆體啟動的代碼(分步看):

https://cdn.china-scratch.com/timg/191106/15535015G-24.jpg

這部分是任意選一個冰激凌的造型,然后顯示出來,同時把“克隆ok?”的變量設(shè)置為0,表明一個冰激凌球的制作過程開始。在沒有處理完成前禁止再克隆新的冰激凌球。

同時在按下空格鍵前停止所有操作,一直等待你按下空格鍵。

https://cdn.china-scratch.com/timg/191106/15535010F-25.jpg

這段代碼就是空格鍵按下的過程,也就是關(guān)鍵的制作冰激凌球大小的過程,我們知道,如果你按的時間太長,冰激凌大小大于上一個球的大小,游戲就會輸了。如果你按的太短,球太小,那么后面的冰激凌就不好做了。

第一個球的時候需要做個判斷,判斷筒的大小,如果是大號,就是球不能超過300,如果是小的,球不能超過200。如果不是第一個球,那么統(tǒng)一最大不能超過300.

https://cdn.china-scratch.com/timg/191106/1553504561-26.jpg

把球的大小值存下來(這個大小是角色的私有變量,也就是克隆體的大小,每一個克隆體都是不一樣的),同時讓球往下落,在碰到黑色的時候停止下落。(注意下所有的角色都有一層黑色的邊,這不光是為了好看,而是關(guān)鍵用來做碰撞判斷的。)

https://cdn.china-scratch.com/timg/191106/1553512557-27.jpg

這段程序是指當(dāng)?shù)谝粋€球落下時,并不是碰到冰激凌筒就停止,而是要繼續(xù)下落一段距離,讓球落入到筒里一部分。

https://cdn.china-scratch.com/timg/191106/15535211K-28.jpg

這部分程序是判斷如果當(dāng)前做的冰激凌球比上一個的大小,如果比上一個大,那么就開始了掉落筒外的程序:

https://cdn.china-scratch.com/timg/191106/1553526426-29.jpg

掉落前先開始在頂端做來回晃動。

https://cdn.china-scratch.com/timg/191106/1553535535-30.jpg

這是一段跌落程序,球向右側(cè)跌落。跌落的過程還是用了前面講的技巧,讓球能夠完全跌落到屏幕之外。同時通過”y移動”這個變量,讓球跌落的速度逐步加快。跌落的過程x方向不斷的向右勻速移動。

https://cdn.china-scratch.com/timg/191106/155353J28-31.jpg

跌落完畢后,就發(fā)布了“游戲結(jié)束”的消息。(我查了翻譯https://cdn.china-scratch.com/Public/Home/images/grey.gif

https://cdn.china-scratch.com/timg/191106/155354F39-33.jpg

如果球沒有上一個大,那么就將球數(shù)增加1,把這個球的大小記錄下來,做下一次比較用。

先對冰激凌的高度做個判斷,如果球的位置有點高了,那么就整個冰激凌都向下移動。(下移通過廣播“下移”來實現(xiàn))如果高度還夠用,那么就將克隆ok?的變量設(shè)定為1,開始下一個球的制作過程。

下移過程

https://cdn.china-scratch.com/timg/191106/15535442W-34.jpg

冰激凌下移的過程,先檢測是否是克隆體,如果是克隆體再進行下移操作(本體不下移)。下移的過程也是用了前面的技巧,確保每一個冰激凌都移到屏幕之外再消失。移動結(jié)束后,再將“克隆ok”的變量設(shè)定成1,準(zhǔn)許制作下一個冰激凌球。

關(guān)于最后一個角色,顯示文本和得分的角色,我就不介紹了,相對簡單,大家自己看吧。

https://cdn.china-scratch.com/timg/191106/155355GY-35.jpg

https://cdn.china-scratch.com/timg/191106/155355K35-36.jpg

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

預(yù)約試聽課

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

主站蜘蛛池模板: 崇仁县| 旺苍县| 麦盖提县| 东宁县| 双桥区| 云和县| 东兴市| 蒲江县| 平武县| 南召县| 马关县| 通河县| 兴业县| 峨边| 关岭| 巴马| 合阳县| 囊谦县| 青铜峡市| 故城县| 若羌县| 延庆县| 定结县| 南昌市| 榆林市| 昌乐县| 赤峰市| 马龙县| 涡阳县| 丰顺县| 阜平县| 铜鼓县| 横山县| 容城县| 无棣县| 岑溪市| 松潘县| 连州市| 雅安市| 偃师市| 城市|