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

極客小將

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

資訊內(nèi)容

Scratch少兒編程第77講-自動(dòng)確認(rèn)路徑軌跡

極客小將2020-11-04-
CC哥在用Scratch編程的時(shí)候,也會(huì)經(jīng)常遇到各種問題,有些問題是編程的bug,但是也有很多問題不是編程的問題,是Scratch本身的局限性造成的。不過正是這種局限性才是啟發(fā)思維和創(chuàng)造的動(dòng)力。 CC哥在之前講座的時(shí)候曾經(jīng)想對(duì)不規(guī)則圖形進(jìn)行涂色,這個(gè)過程遇到了很多問

CC哥在用Scratch編程的時(shí)候,也會(huì)經(jīng)常遇到各種問題,有些問題是編程的bug,但是也有很多問題不是編程的問題,是Scratch本身的局限性造成的。不過正是這種局限性才是啟發(fā)思維和創(chuàng)造的動(dòng)力。

CC哥在之前講座的時(shí)候曾經(jīng)想對(duì)不規(guī)則圖形進(jìn)行涂色,這個(gè)過程遇到了很多問題,比如難點(diǎn)之一是如何確認(rèn)不規(guī)則圖形的內(nèi)部點(diǎn),CC哥還沒有解決掉。不過在攻關(guān)過程中,CC哥解決了不規(guī)則圖形的輪廓軌跡確認(rèn)的問題,可以今天跟大家分享一下。

先看看小例子:

https://cdn.china-scratch.com/timg/200108/1104263b8-0.gif

大家看到?jīng)],小企鵝是沿著藍(lán)色的路徑軌跡在行走,并且一直走到綠旗的終點(diǎn)。這個(gè)路徑是完全不規(guī)則的,那么怎么實(shí)現(xiàn)呢?

軌跡角色

upload/article/images/2020-11-04/9596229706df32ec6b80119de41bef85.jpg

首先是路徑角色,這個(gè)是CC哥自己畫的。路徑的難點(diǎn)在于程序如何去確認(rèn)起點(diǎn)和終點(diǎn)。有幾種方法:

1:用線掃描的方法,CC哥的起點(diǎn)確認(rèn)就是用了從左到右,從上到下的線掃描的過程。但是用這個(gè)方法就需要,你的起點(diǎn)要是整個(gè)圖形的最左邊。如果不是的話就無法確認(rèn)了,比如下圖:

upload/article/images/2020-11-04/a02068672ef7aec19f173a896f6f0384.jpg

如果用線掃描,那么得出的起點(diǎn)就是畫圈的部分,因?yàn)檫@個(gè)點(diǎn)才是圖形的最左端。

2:第二種方法就是設(shè)定起點(diǎn)參照物,然后找出離參照物最近的點(diǎn),不過這個(gè)方法CC哥沒有去做,大家如果有興趣的話可以自己試試。(這種方法就是要先找外輪廓的軌跡,然后每一個(gè)點(diǎn)去比較和參照物的距離,然后再確認(rèn)起點(diǎn)和終點(diǎn))

軌跡記錄角色

upload/article/images/2020-11-04/4f38b5c6254fb5c9f1d2dac28d02f706.jpg

這個(gè)軌跡記錄的角色,就是一個(gè)小紅點(diǎn),CC哥是用這個(gè)小紅點(diǎn)去找出路徑的軌跡的。這個(gè)小紅點(diǎn)的大小也非常有關(guān)系,不能太小和太大,否則的話很容易陷入死循環(huán),這就是Scratch本身的限制導(dǎo)致的。

https://cdn.china-scratch.com/timg/200108/11042SJ0-4.gif

其他的企鵝,巖石,旗子都是輔助角色,沒必要特別介紹了。

程序設(shè)計(jì)的邏輯

做這個(gè)程序跟走迷宮的程序有些類似,需要用遞歸的方式處理。

1:先找到路徑的起點(diǎn)。

2:沿著起點(diǎn)進(jìn)行路徑輪廓的掃描。

在軌跡掃描的時(shí)候要知道如何判斷掃描結(jié)束,在這里CC哥用了一個(gè)綠旗子作為掃描的終點(diǎn),這是最簡單的方法。

upload/article/images/2020-11-04/f0e807d0e686bd020c7da7c862e965d1.jpg

CC哥用了一些自定義的積木來實(shí)現(xiàn)掃描過程,CC哥用的是走迷宮的邏輯來記錄輪廓軌跡:

1:先判斷左手邊是否為路徑,2:如果左手邊已經(jīng)為路徑了,那么再判斷前方是否為路徑。3:如果前方也是路徑了,那么判斷右方是否為路徑。4:如果右方還是路徑的情況下,繼續(xù)判斷右方。這些判斷一旦為否,那么全部回到第一步,確認(rèn)左邊是否為路徑。

upload/article/images/2020-11-04/c5ed8481109c542dcd2a43637bf0a99f.jpg

這部分代碼就是這個(gè)邏輯。

在這里,CC哥用了列表記錄軌跡,軌跡坐標(biāo)是X,和Y軸的坐標(biāo)組成,所以要記錄軌跡坐標(biāo),就需要兩個(gè)列表,一個(gè)列表用來存X軸坐標(biāo),一個(gè)列表用來存Y軸的。(程序種軌跡列表,和外部輪廓列表實(shí)際都是一樣的,大家自己做的時(shí)候可以只用一個(gè)就行了。)

確認(rèn)外部輪廓首先要找到一個(gè)起點(diǎn),起點(diǎn)用線掃描的程序來做,這部分CC哥不介紹了,就是讓小紅點(diǎn)角色從上左到右,從上到下一步一步的走,當(dāng)碰到路徑的時(shí)候,就開始調(diào)用調(diào)用上面的代碼進(jìn)行路徑的輪廓軌跡確認(rèn)和記錄。

upload/article/images/2020-11-04/d4ebaa60fe01000fd177ee7d19a8bc8d.jpg

這段主程序因?yàn)镃C哥開始做的時(shí)候有其他的編程目標(biāo),所以寫的有點(diǎn)復(fù)雜,大家可以照著自己的思路做。

企鵝行走編程

企鵝的程序不復(fù)雜,就是沿著軌跡的坐標(biāo)一步一步走就好了,軌跡就是列表里的坐標(biāo)。

upload/article/images/2020-11-04/8a192a15e86c31c31d822883ace0fc4a.jpg

需要注意的是:

1:在路徑軌跡掃描的過程中,不要有角色擋住路徑,否則路徑掃描就會(huì)不完整。無法得到完整的路徑。所以先要把企鵝隱藏掉,等軌跡記錄完之后再顯示出來。

2:企鵝角色有一個(gè)朝向的問題,所以CC哥根據(jù)每一步是往前走還是往后退,來設(shè)定角色的朝向,是朝前還是朝后。大家注意X和X1這兩個(gè)變量就是用來判斷前一步和后一步的關(guān)系。

本講座的目標(biāo)

本篇講座的目標(biāo)就是讓大家學(xué)會(huì)如何根據(jù)顏色進(jìn)行軌跡掃描,可以用在走迷宮,形狀的軌跡確認(rèn),以及角色走不規(guī)則的路徑等。

另外,假設(shè)我把顏色判斷改成了角色碰撞的判斷,同時(shí)把軌跡角色設(shè)置成透明,那么你就會(huì)發(fā)現(xiàn)企鵝會(huì)沿著一條你看不見的路徑在行走,是不是也有意思呢?


·END·

跟我學(xué)Scratch編程

不用花錢成為Scratch高手

預(yù)約試聽課

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

主站蜘蛛池模板: 欧美日日夜夜 | 精品成人av | 精品国产一区二区在线 | 国产suv精品一区二区三 | 日韩精品一区在线 | 爱情岛论坛首页网址 | 久久午夜视频 | av中文字幕在线观看 | 波多野结衣av电影在线观看 | 欧美视频一区二区三区 | 成人黄色91| 欧美一区亚洲一区 | 91精品国产99久久久久久久 | 看亚洲黄色片 | 国产在线免费 | 日本免费高清一区二区 | 国偷自产视频一区二区久 | 日本久久网| 天天草比 | 国产成人精品一区二区三区视频 | 欧美一级免费观看 | av网站免费观看 | 国产成人在线播放 | 精品国产一二三区 | 日韩欧美视频在线 | 欧美人妖网站 | 国产精品美女视频 | 成人精品在线播放 | 国产激情美女久久久久久吹潮 | 激情视频网址 | 久久精品国产99国产 | 最新的中文字幕 | 精品亚洲一区二区三区 | 国产成人精品一区二区三区网站观看 | 国产伦精品一区 | 视频在线观看99 | 日韩久久激情 | 久久久久亚洲精品视频 | 日日夜夜天天操 | 久久久久久久一区二区三区 | 96看片 |