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

極客小將

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

資訊內(nèi)容

Scratch少兒編程第75講-海洋世界-進(jìn)階版

極客小將2020-11-05-
進(jìn)階教程不光是把程序做得復(fù)雜,更多時候是把程序的細(xì)節(jié)處理好,今天CC哥就把海洋世界之前做過的一個最初級的程序,配上一些細(xì)節(jié)的完善,讓大家再看看這個游戲跟初級課程做的游戲會有什么區(qū)別。 先看看游戲視頻: 視頻沒看清楚的地方,下面一步步介紹。

進(jìn)階教程不光是把程序做得復(fù)雜,更多時候是把程序的細(xì)節(jié)處理好,今天CC哥就把海洋世界之前做過的一個最初級的程序,配上一些細(xì)節(jié)的完善,讓大家再看看這個游戲跟初級課程做的游戲會有什么區(qū)別。

先看看游戲視頻:

視頻沒看清楚的地方,下面一步步介紹。

氣泡的優(yōu)化思路

1:首先CC哥第一眼就覺得之前的游戲里最大的問題就是氣泡不會動。

upload/article/images/2020-11-05/6ff3563643800839f0635227ecdf16df.jpg

因?yàn)檫@只是個背景圖片,氣泡當(dāng)然不會動了,那我們想把它變成會動的氣泡,那不就生動了?

如何變成會動的氣泡呢?CC哥開始思考相應(yīng)的物理知識:

1:氣泡在浮起的時候,隨著壓強(qiáng)的降低,是不斷變大的。

2:因?yàn)樽兇?,受到的浮力也不斷增大,所以氣泡是不斷加速上浮的,而且加速度越來越快的?

3:因?yàn)槭艿礁鞣N外部環(huán)境影響,氣泡是不可能直線上浮的,是在上浮過程中左右晃動的。

有了這些物理知識,那么CC哥要做的氣泡程序就必須符合這個條件才行。

看到這里大家明白沒有?剛才你看到的游戲視頻里的氣泡可不是什么動圖和造型切換,而是CC哥用編程做出來的。

https://cdn.china-scratch.com/timg/200102/105245C40-1.gif

通過這個動圖大家觀察出來氣泡怎么產(chǎn)生的了嗎?


氣泡的程序設(shè)計

首先這個CC哥是用克隆體來做的:

1:第一步要設(shè)計好氣泡的樣子和冒出的位置

upload/article/images/2020-11-05/45e842bde68fede38a9f825eb754952d.jpg

upload/article/images/2020-11-05/e9399709f1734c017b0cdb91c94cc0a2.jpg

氣泡就是一個綠色的小點(diǎn)。CC哥構(gòu)想有海底冒出三個氣泡的位置,直接copy了三個氣泡的角色,這樣可以簡化編程。這三個角色的代碼都是一模一樣的。

2:不斷克隆自己

upload/article/images/2020-11-05/78b078303a60072a23d90c22e86f47dd.jpg

克隆的時間間隔,CC哥用了講過的隨機(jī)數(shù)技巧,平常的隨機(jī)數(shù)只能取整數(shù),但是CC哥想要的隨機(jī)的時間間隔很短,大概在0.02秒和0.06秒之間,所以我們只要把取得隨機(jī)數(shù)除以50,就可以得到小數(shù)的隨機(jī)數(shù)。

3:氣泡上升過程中的變化:

upload/article/images/2020-11-05/93f7e779da4d43a0d9a2e1dba774ccff.jpg

這段代碼主要注重兩部分:

a:?上升加速

上升加速有兩種方法,一種是用加法,一種是用乘法。區(qū)別就是固定加速度還是變加速度。比如我們平常模擬重力效果時就用加法,我們會把上升速度每次循環(huán)時固定增加1或-1,這就是固定加速度。而乘法是我們每次把加速度的值每次循環(huán)乘以一個系數(shù),那么這種變化就會產(chǎn)生累積,會越來越大。比如:1.1 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1 = 1.95。這就是炒股里說的復(fù)利,每年只賺10%,七年下來就賺翻翻了。https://cdn.china-scratch.com/Public/Home/images/grey.gif?

另外考慮多一個細(xì)節(jié),就是每次氣泡冒出來的大小是不固定的,有的出來小些,有的大些。

upload/article/images/2020-11-05/22a10ca4caa909f71b59908a8c075762.jpg

為什么這么考慮?是想讓氣泡在上升的過程中有交錯的效果,比如大的氣泡升的快,就會超過小的氣泡,視覺效果就更真實(shí)。所以初始的上升速度是跟氣泡的大小有關(guān)系的。

b: 水平晃動

upload/article/images/2020-11-05/c9b0a56497befa5e4e81fc412b0f16cb.jpg

upload/article/images/2020-11-05/0eba098bc1b0ba23668fe71c3fc9499c.jpg

upload/article/images/2020-11-05/ca9a9f2e8e08d3861bc460bac8311b2e.jpg

跟晃動部分相關(guān)的代碼:

1:晃動只要處理X軸的運(yùn)動效果就可以。

2:用正弦函數(shù)就可以得到一個-1~1之間的變換值。再配上Y軸的運(yùn)動,就會產(chǎn)生螺旋上升的效果。

3:設(shè)置晃動變量增加的數(shù)值,是為了控制氣泡群的寬度,晃動增加的越快,氣泡群的直徑就越窄。

4:在每次循環(huán)的運(yùn)動過程中用了隨機(jī)數(shù)來變換振幅,這樣就可以造成上升過程中的隨機(jī)運(yùn)動效果,而不是一個標(biāo)準(zhǔn)的螺旋上升曲線。

有沒有覺得CC哥思考得還是很周全的?程序不復(fù)雜,但是效果很好。https://cdn.china-scratch.com/Public/Home/images/grey.gif這一直是CC哥追求的,越簡單越完美。https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif

順便優(yōu)化一下鯊魚

這一講主要是講氣泡的,但是CC哥在做完了氣泡之后,就停不下來,還想把鯊魚優(yōu)化一下。

https://cdn.china-scratch.com/timg/200102/1052521448-15.gif

這是老的被鯊魚吃掉效果,是不是簡陋的想哭呀。https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-05/67103e5559788a2508c0fb9bdc2a86e7.jpg

CC哥看到造型里還有一個張嘴的造型,這不正好是吃魚的動作嘛,趕緊利用以前的學(xué)習(xí)技巧,把這個改善一下。

https://cdn.china-scratch.com/timg/200102/1052532517-18.gif

這里面也有細(xì)節(jié)要處理:

1:鯊魚有兩種,一種是固定巡航的鯊魚,沿著固定路徑在走,那么如果碰到小魚的時候是背面碰到的,那么鯊魚要轉(zhuǎn)身吃掉小魚。

2:在吞吃小魚的時候,是嘴部吞的,嘴部并不是鯊魚的中心位置,所以程序處理要退20步。

3:要配音https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-05/35e81346816eed1590a6c78222620635.jpg

過程控制

以前處理程序流暢,結(jié)束的時候就是一個停止全部腳本。

https://cdn.china-scratch.com/timg/200102/10525W306-21.jpg

其實(shí)配合好消息命令,還有這些停止命令,就可以很有效的控制游戲的進(jìn)程。CC哥就用這些命令進(jìn)行游戲的進(jìn)程控制,給小魚附加上生命值,變成了一個完整的游戲。

這次的進(jìn)階課程,并不是要強(qiáng)調(diào)多高深的編程技巧,而是強(qiáng)調(diào)編程設(shè)計中如何對細(xì)節(jié)進(jìn)行思考,一些小的技巧用在細(xì)節(jié)的處理上面,就會為程序增色不少。所以學(xué)習(xí)過程中,最重要的是活學(xué)活用,而不是天天追求難點(diǎn)。


·END·

跟我學(xué)Scratch編程

不用花錢成為Scratch高手

預(yù)約試聽課

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

主站蜘蛛池模板: 全南县| 阿勒泰市| 新泰市| 保德县| 宁远县| 衡水市| 楚雄市| 吐鲁番市| 甘泉县| 黄龙县| 英山县| 灵台县| 张家界市| 渝中区| 越西县| 大悟县| 拜城县| 天柱县| 大埔县| 云和县| 永登县| 东丰县| 开江县| 武汉市| 潞西市| 漳州市| 石阡县| 康乐县| 常州市| 偃师市| 日土县| 五河县| 高碑店市| 普兰县| 育儿| 封丘县| 雅安市| 平谷区| 饶河县| 英德市| 祁东县|