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

極客小將

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

資訊內(nèi)容

Scratch少兒編程第29講:貪吃蛇(更新版)

極客小將2020-11-10-
想了解編程技巧,就請點擊上面藍字:跟我學Scratch編程,關(guān)注CC哥 之前做的貪吃蛇的游戲一直有兩個問題,一直沒有優(yōu)化,一個是貪吃蛇碰到自己的情況處理有點復雜不好理解,一個是蟲子出現(xiàn)的位置可能會在蛇身上,有學友也提過這兩個問題,那么今天CC哥就

想了解編程技巧,就請點擊上面藍字:跟我學Scratch編程,關(guān)注CC哥



之前做的貪吃蛇的游戲一直有兩個問題,一直沒有優(yōu)化,一個是貪吃蛇碰到自己的情況處理有點復雜不好理解,一個是蟲子出現(xiàn)的位置可能會在蛇身上,有學友也提過這兩個問題,那么今天CC哥就把這兩個問題優(yōu)化一下。

游戲的展示視頻沒什么太多區(qū)別,CC哥主要講之前的問題的解決方案:

如何偵測貪吃蛇碰到自己

之前講座的碰撞檢測是:

upload/article/images/2020-11-10/013b749c625ea4fb476cbaf74c77ec10.jpg

邏輯就是因為身體是一個一個克隆體組成,所以如果要用克隆體碰到蛇頭來檢測,那么就要避免有幾個克隆體實際上一直都是跟蛇頭連在一起,是處于一直碰撞的狀態(tài)。所以為了區(qū)別這些克隆體,我們就引入了克隆編號這個私有變量,然后判斷碰到蛇頭的克隆體,是不是連接著蛇頭部分的幾個克隆體。這部分CC哥說起來都比較費勁,所以這部分代碼對初學者來說有點難理解這個邏輯關(guān)系。

改進方法

增加一個偵測的角色,進行碰撞檢測。

這個方法是我們最常用的碰撞檢測方法,特別是在碰到形狀不規(guī)則的角色的時候。

upload/article/images/2020-11-10/f6902396dfc359b463637d6f07568b81.jpg

upload/article/images/2020-11-10/3e8201eb78f0e02f4b033b9b6f724662.jpg

就是這么個探測角色,就一個小點,在程序執(zhí)行的時候,它是看不到的,但是我們可以始終讓它出現(xiàn)在蛇頭的位置上,這樣一旦出現(xiàn)碰撞,我們就可以直接檢測出來,是不是非常好理解了?而且程序邏輯相對也簡單了。也就不需要考慮克隆編號這類需要進行克隆體區(qū)別的內(nèi)容了。

如果想免費獲得CC哥的講座中的程序代碼以及游戲素材,可以通過掃描二維碼關(guān)注《跟我學Scratch編程》,然后點擊獲取代碼即可。

那么探測角色代碼的部分我們看一下:

upload/article/images/2020-11-10/b04ab9a4c243d92de1ebadb66e6e7b23.jpg

這部分代碼的理解:

1:程序一開始就設(shè)成透明的,這樣你就看不見它了。(不能用隱藏,因為隱藏的角色是沒有辦法進行碰撞檢測的)

2:重復執(zhí)行反復讓這個偵測角色移動到蛇頭的部分。

3:方向要跟蛇頭保持一直,這樣偵測角色才會始終出現(xiàn)在蛇頭部分的前端,不論蛇頭朝向哪個方向。

4:讓偵測角色往前移動15步,保證偵測角色出現(xiàn)在蛇頭的位置,而不是被蛇頭覆蓋掉。

5:碰到邊緣的時候要隱藏起來。

upload/article/images/2020-11-10/1a6e0574b44859b5f5a1a55a171996c2.jpg

第五步是最容易被忽略的地方,也是最容易形成bug的地方。讓我們看一下如果沒有這一步會出現(xiàn)什么結(jié)果。

https://cdn.china-scratch.com/timg/191222/110953O16-5.gif

看到?jīng)]有,如果這個判斷代碼,貪吃蛇在碰到邊緣時,沒有從另一邊出來,而是直接游戲結(jié)束了。

為什么會出現(xiàn)這種情況,這個也是Scratch編程里面經(jīng)常碰到的問題,舞臺邊緣的問題,當一個角色碰到舞臺邊緣時,如果繼續(xù)移動,并不會移出舞臺的邊緣,而是會停在舞臺的邊緣,這樣跟著蛇頭的克隆體就會直接碰上這個偵測變量,從而宣布游戲結(jié)束。所以我們通過碰到邊緣的時候直接隱藏偵測角色,讓它失去碰撞偵測的功能,然后當它出現(xiàn)另一邊時,再通過顯示功能,來恢復它的偵測能力,這樣程序就沒有bug了。

另外在蛇身這部分的碰撞檢測就簡單了,只需要檢測碰到探測變量就OK了。

upload/article/images/2020-11-10/abae6a5993a482ab7549a90acd1f8c59.jpg

《跟我學Scratch編程》資源獲取方式:(點擊查看)《跟我學Scratch編程》前60講程序匯總
第60講~72講進階課程源代碼獲取方式

蟲子不出現(xiàn)在蛇身上

upload/article/images/2020-11-10/f67143e5d4dbbeb15d9067849748498c.jpg

這部分我們改成了用自定義積木來做,如果碰到了蛇頭,那么就更換位置。大家注意看自定義積木的內(nèi)部編程,在這部分內(nèi)部程序里套用了自己。這個對初學者有點難理解,自己套用自己。為什么這樣用?因為蟲子出現(xiàn)在隨機的位置,我們無法保證下一個隨機位置就正好不在蛇身上,那只能不斷的來嘗試,直到下一個隨機位置不在蛇身上為止。所以這有點遞歸的邏輯。對于不確定反復的次數(shù),只有退出條件的循環(huán),可以用這種方式,編程更簡單一些。大家可以再去學習一下CC哥有關(guān)遞歸的課程。

另外CC哥重新做了個play的特效,效果不錯吧,不過這不是CC哥這講的教學內(nèi)容,大家如果感興趣可以自己做做,或者自己看代碼吧。

upload/article/images/2020-11-10/6512145a8f6e46777ab9a278f3c40bfd.jpg

這一講的更新代碼CC哥會打包到前60講里面,作為大家的延展學習。當然原來的29講代碼還會保留。


另外,CC哥發(fā)現(xiàn)很多學員不從基礎(chǔ)學起,上來就問問題,問的問題都是之前帖子里講過的基礎(chǔ)問題,所以CC哥再次強調(diào),如果你是個初學者,請從第一講學起,而且每個例子都要自己做一遍,不要當小說看,否則你是學不好編程的。

《跟我學Scratch編程》資源獲取方式:(點擊查看)《跟我學Scratch編程》前60講程序匯總
第60講~72講進階課程源代碼獲取方式

如果覺得CC哥做的不錯,請點擊右下角的"好看",給CC哥一個鼓勵!

·END·

跟我學Scratch編程

不用花錢成為Scratch高手

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

預(yù)約試聽課

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

主站蜘蛛池模板: 日本暖暖在线视频 | 蜜桃永久免费 | 国产黄色av | 亚洲精品女 | 国产99在线 | 欧美 | 久久久久99精品国产片 | 亚洲精品国产综合区久久久久久久 | 国产亚洲欧洲 | 欧美日本韩国在线 | 美女扒开腿让男生桶 | 国产精品自拍av | 成年免费视频 | 国产成人在线视频网站 | 亚洲精品乱码久久久久久麻豆不卡 | 久久福利精品 | av第下页 | 精品成人网 | av三级在线播放 | 久www | 日韩在线精品 | 欧美日韩精品综合 | 色婷婷综合久久久中文字幕 | 在线国产福利 | 欧美日韩在线电影 | 日日网站 | 久久久久成人精品免费播放 | 国产精品精品久久久 | 久久久久久久国产精品 | 妹子干综合| 久久久国产一区 | 日韩在线高清 | 久久99深爱久久99精品 | av在线免费观看网站 | 国产一区久久久 | 国产日韩一区二区三区 | 精品国产31久久久久久 | 热久久免费 | 91精品国产综合久久久亚洲 | 成人精品国产一区二区4080 | 干片网在线 | 性欧美三级 |