国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

Scratch第72講:精確制導

極客小將2020-11-19-
想了解編程技巧,就請點擊上面藍字:跟我學Scratch編程,關注CC哥 本來想在飛機大戰的游戲里加入導彈,后來想了一下,CC哥的目的主要還是做教學,所以為了讓大家更好的學習和掌握知識,CC哥就把這個精確制導做成了獨立的游戲,讓大家更容易學習。

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



本來想在飛機大戰的游戲里加入導彈,后來想了一下,CC哥的目的主要還是做教學,所以為了讓大家更好的學習和掌握知識,CC哥就把這個精確制導做成了獨立的游戲,讓大家更容易學習。

導彈的特點

導彈嘛,CC哥總結的特點就是:

1:自動選擇目標

2:自動追蹤目標,而且運動軌跡是弧形的。

https://cdn.china-scratch.com/timg/191125/1359413937-0.gif

在你的游戲里加入導彈是不是給游戲增色很多https://cdn.china-scratch.com/Public/Home/images/grey.gif,有思考怎么實現的嗎?讓我們一起來看看。

游戲關鍵點

導彈也好,敵機也好,如果都是本地的角色之間發生互動關系,都不會復雜,但是這個游戲的關鍵是兩個角色克隆體之間的互動,因為發射出去的導彈是導彈角色的克隆體,敵機是敵機角色的克隆體,那么克隆體之間怎么進行這種實時的互動呢?

程序介紹

戰機沒啥好介紹的,控制部分跟飛機大戰都一樣,用上下左右鍵進行移動。關鍵是讓大家看看CC哥找的造型是不是很酷https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-19/eae22bbf4e15b7873dc7652abf5f9ffe.jpg

敵機的造型也挺酷的https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-19/89135d0c2faef29f8f676b91c98be657.jpg

導彈如何選擇目標

如果想讓導彈選擇目標,那么就必須要有一個可選擇的記錄庫,和選擇的標準,所以,當導彈發射的一瞬間,我們需要知道天上有多少敵機,以及他們之間怎么區別的,只有具備這些條件,你才有選擇的基礎。所以為了選擇目標,CC哥創建了一個列表,這個列表里就包含了所有在天空中出現的敵機。只要在這個列表里進行選擇就好了。

那這個列表里存的什么數據呢?存的就是一個一個敵機的編號。所以我們在克隆敵機的時候,需要為每一個敵機進行編號,否則就無法對敵機進行一一的識別,更談不上選擇了。

upload/article/images/2020-11-19/79f171f09492e4844c4b765ba3937d9a.jpg

這是敵機開始的一段程序,CC哥讓敵機在舞臺的高處隨機的出現,但是在出現的同時,用“敵機編號”這個私有變量對敵機進行編號。同時把這個敵機編號加入到{敵機隊列}這個列表里。

但是如果敵機消失在舞臺邊緣,或者被擊毀和撞毀,那么它就不再是目標了,就需要從目標的庫里刪除掉,也就是從{敵機隊列}里刪除掉。

upload/article/images/2020-11-19/4d2e6d6545304fb7495de2b987741826.jpg

這段代碼不難理解,就是敵機在飛行過程中,如果被導彈擊中,就播放爆炸效果。然后不論是那種情況消失,都需要從敵機隊列里刪除這個編號。刪除完之后,如果隊列里還有敵機,那么就選擇隊列的第一項,也是隊列里出現最早的飛機。如果刪除完之后隊列里沒有項目了,就說明飛機已經被打光了,所以要把目標敵機這個變量設為0。

CC哥用“目標敵機”這個變量來代表此時此刻被導彈鎖定的敵機!

如果目標敵機為0了,也就是沒有敵機了,那么下面一刻新克隆出來的敵機就自動成為當前的目標敵機。

upload/article/images/2020-11-19/c68e9408f6064e046582cfdce679b9c7.jpg

當然,既然知道了目標敵機是誰,那肯定無時不刻都要盯緊它,要實時鎖定它的物理方位才能進行攻擊!

upload/article/images/2020-11-19/80170c451ebafaeb4c297dbbccb1e77f.jpg

導彈飛行過程中跟蹤敵機

敵機的坐標鎖定了,但是導彈怎么跟蹤它呢?這個x和y坐標可是隨時在發生變化,而不是固定在那里讓我打。那你的運動軌跡如何跟蹤一個實時變動的目標呢?

一種方法:根據雙方的X和Y坐標來算角度,這就是幾何了,大家可以畫畫圖試一下怎么計算,CC哥認為這也是一種不錯的方法呢。

還有一種方法就是用現有的命令,

upload/article/images/2020-11-19/b5ddc28f8757714d096208db9c4bdd36.jpg

但是問題是這只能面向一個角色,不能面向一個克隆體呀,怎么辦?老辦法,引入影子目標角色,也就是用另一個隱形的角色,實時的移動到目標的X,Y坐標上,充當靶子。只要導彈面向這個角色,就相當于面向了目標,只要實時去用面向這個命令來校準,那導彈就始終是往目標的地方追。

upload/article/images/2020-11-19/1d7438ca8b6e71d70156e2193692bea5.jpg

這就是這個影子角色,為什么不隨便用個圓圈或小點代替,是因為CC哥要做碰撞檢測的,所以只有影子目標的造型和真實目標的造型一模一樣,才能完美的檢測是否真正擊中目標。另外CC哥涂這一下子是為了調試程序用的,否則都長一樣,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

upload/article/images/2020-11-19/6e15cef83a6d51086338db23bb5ebbd2.jpg

為什么不用隱藏,而用虛像99,這兩個的基本效果都是一樣的,都是讓你看不見,但是區別是隱藏了就檢測不到碰撞了,而虛到99,那雖然你看不見,但是計算機看得見,也就是碰撞檢測不受影響。對于這段程序就是目標角色會始終盯住目標戰機的位置,任勞任怨的充當導彈的靶子。https://cdn.china-scratch.com/Public/Home/images/grey.gif

飛機上不同的位置開始著火,就能充分表現這一點,后來加上去發現效果還不錯。https://cdn.china-scratch.com/Public/Home/images/grey.gif

upload/article/images/2020-11-19/57a273feff920c5147d0256bddc01d8f.jpg

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

游戲合理性

CC哥做程序和游戲都有一個習慣,要思考你設計的東西是不是合理,在目標選擇這一塊,CC哥就想了,按照上面的邏輯,肯定是選擇最早出現的敵機,因為離得的會最近,最有威脅。但是如果用導彈去作為攻擊武器,那么就不那么簡單了,因為導彈有導彈的特性,首先導彈都是往前發射,發射出去之后再變化軌跡進行敵機追蹤,第二,導彈是飛的很快的,并不會臨時轉彎,轉彎時需要較大的轉彎半徑。所以不是所有的敵機都適合發射導彈去攻擊。比如已經靠近你左右側的敵機就很難擊中,因為轉彎半徑就已經大過與敵機的距離了。或者已經飛到你后面的敵機就更難擊中一些。當然,放著前面的敵機不去打,非要辛苦的繞到后面去打,肯定不合理。

所以CC哥為了合理性,就在目標選擇上增加了篩選條件,也就是只有在戰機前面并和戰機保持一定距離以上的敵機才會成為攻擊目標。

upload/article/images/2020-11-19/76c0082613b2eedc6a9bc33013f6714d.jpg

處于這份考量,CC哥在目標跟蹤上加了這段代碼,如果在發射時檢測到敵機離戰機太近和位于戰機的后方,那么目標會忽略次敵機,自動調整到下一個可以攻擊的敵機。

導彈的運動軌跡

導彈的運動軌跡也是個游戲設計點:

upload/article/images/2020-11-19/ee55452dfd67a2ee1be7b3d3f1ec0ab4.jpg

有點象火箭的導彈https://cdn.china-scratch.com/Public/Home/images/grey.gif

https://cdn.china-scratch.com/timg/191125/135944H03-22.jpg

這個就是如果鎖定了目標就發射!發射的初始方向都是正前方!

https://cdn.china-scratch.com/timg/191125/1359443M6-23.jpg

https://cdn.china-scratch.com/timg/191125/1359455G2-24.jpg

然后根據目標的位置進行方向修正,如果導彈的方向和飛機飛行的方向差別比較大時,那么每飛一步就進行5度的校準,如果方向差別已經在5度以內了,那么校準就變成每步1度。

這段代碼比較長的原因是校準的方向跟導彈和敵機所處的位置有所區別,舉個例子,如果導彈和敵機都在垂直方向的一邊,那么軌跡比較簡單,始終朝著減小的方向調整就能將兩個角度重合。但是如果一旦出現其中一個角色飛到了下部中心垂直方向的另一邊,那么兩者之間的角度差就會突然大了180度。這時候你如果還是朝著角度差減小的方向去調整,那么可能會造成導彈的突然轉向,從另一個方向去追敵機,那肯定是不合理的,這跟Scratch的坐標和方向的定義有很大關系。所以CC哥在這里做的條件判斷,就是不希望導彈會隨著角色突然跨越下部中心垂直線造成方向角度的突然變化而導致導彈突然轉向。

總結

今天學到的知識:

1:用列表來存儲克隆體的編號,從而實現對克隆體的個體管理。

2:用影子角色來輔助對具體某個克隆體的操作。

3:進一步了解位置,方向的相對性。

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

預約試聽課

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

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        亚洲美女自拍偷拍| 精品视频无码一区二区三区| 欧美日韩一级在线| 欧美高清中文字幕| 激情五月宗合网| 五月婷婷狠狠操| 最新视频 - x88av| www.玖玖玖| 在线观看岛国av| av动漫在线免费观看| 青青草视频在线免费播放| 大肉大捧一进一出好爽动态图| 少妇性l交大片| 中文字幕剧情在线观看| 91免费国产精品| 男操女免费网站| 成人在线免费高清视频| 精品免费国产一区二区| 日韩av片免费观看| 国产精品333| 91九色国产ts另类人妖| 国产极品美女高潮无套久久久| 亚洲美女自拍偷拍| 狠狠热免费视频| 久久久久久久久久久99| 日本高清免费观看| 看欧美ab黄色大片视频免费| 国产专区在线视频| 香港日本韩国三级网站| 亚洲中文字幕无码av永久| 色播五月激情五月| 免费无码av片在线观看| 日韩国产小视频| 欧美又黄又嫩大片a级| 中文字幕日本最新乱码视频| 热这里只有精品| 中日韩av在线播放| 成人羞羞国产免费网站| 精品丰满人妻无套内射| 国风产精品一区二区| 天天操精品视频| 91丨九色丨蝌蚪| 麻豆av免费在线| 国产免费成人在线| 国产原创popny丨九色| 免费看欧美一级片| 小泽玛利亚av在线| 日韩视频一二三| 男女激烈动态图| 91香蕉视频网址| 日本美女久久久| 天天色天天干天天色| 波多野结衣国产精品| 国产wwwxx| 色国产在线视频| 在线免费视频一区| 九九热免费在线观看| 一区二区三区免费播放| 色婷婷综合网站| 在线观看岛国av| 视频区 图片区 小说区| 爱爱爱视频网站| 国产日韩欧美大片| 国产激情片在线观看| 看一级黄色录像| 国产女教师bbwbbwbbw| 99在线免费视频观看| 无码人妻精品一区二区三区在线| 成人毛片视频网站| 五月婷婷丁香综合网| 日本中文字幕观看| 日韩不卡的av| 国产在线xxxx| 播放灌醉水嫩大学生国内精品| 精品免费国产一区二区| 久久精品国产露脸对白| 欧美黄网在线观看| 国产老熟妇精品观看| 中文字幕在线观看第三页| 97超碰人人看| 国产原创中文在线观看| 我要看一级黄色大片| 日本一道在线观看| 哪个网站能看毛片| 91欧美一区二区三区| 日韩av新片网| 亚洲人视频在线| 天天做天天躁天天躁| 国产精品视频一区二区三区四区五区| 蜜臀久久99精品久久久酒店新书| 99999精品| 99色精品视频| 老司机激情视频| 超碰在线播放91| 亚洲精品天堂成人片av在线播放 | 91成人综合网| 亚洲一二三区av| 日韩精品在线视频免费观看| 免费日韩中文字幕| 国产精品自拍合集| 亚洲国产成人va在线观看麻豆| 欧美视频在线观看视频| 亚洲国产欧美91| 国产野外作爱视频播放| 国产婷婷一区二区三区| www.日本久久| 日韩av片网站| 三级4级全黄60分钟| 国产男女免费视频| 国产成人强伦免费视频网站| 中文字幕一区二区三区四区在线视频 | 欧美一区二区三区综合| 精品www久久久久奶水| 免费网站永久免费观看| 国内自拍第二页| 天天干天天操天天玩| 久久久久久久少妇| 中文字幕无码精品亚洲35| 国产成人一二三区| 日韩最新中文字幕| 交换做爰国语对白| 91精品视频国产| 天天干天天草天天| 欧美日韩亚洲自拍| 中文字幕国产传媒| 在线观看免费成人av| 免费激情视频在线观看| 少妇无码av无码专区在线观看| www国产免费| 丁香六月激情婷婷| 人妻少妇精品久久| www黄色日本| 人妻内射一区二区在线视频| 国内外成人免费激情视频| 日本精品一区二区三区四区| 日韩在线一级片| 欧美 日韩 国产在线观看| av网站手机在线观看| 好吊妞无缓冲视频观看| 37pao成人国产永久免费视频| 国产v片免费观看| 国产a级一级片| 男女男精品视频站| 亚洲欧美一区二区三区不卡| 国产女人18毛片| 国产日本在线播放| 亚洲精品高清无码视频| 中日韩av在线播放| 爱爱爱视频网站| 亚洲 自拍 另类小说综合图区| 熟女少妇在线视频播放| 538在线视频观看| 肉色超薄丝袜脚交| 国产91沈先生在线播放| 97在线免费公开视频| 一级黄色特级片| 日本xxxxx18| 久久9精品区-无套内射无码| 男女视频在线看| 黄色特一级视频| 可以免费在线看黄的网站| 在线免费看v片| 可以看毛片的网址| 一级做a免费视频| 欧美精品久久久久久久自慰| 999精品视频在线| 黄色片免费在线观看视频| 爱福利视频一区二区| 91成人在线视频观看| 37pao成人国产永久免费视频| 天美一区二区三区| 欧美色图另类小说| 国产成人三级视频| 美女网站免费观看视频| 天堂а√在线中文在线 | 国产精品97在线| 久久视频免费在线| 欧美大尺度做爰床戏| 18禁裸男晨勃露j毛免费观看| 国产永久免费网站| 青青在线视频观看| 日本精品久久久久久久久久| 亚洲午夜精品一区| 国产精品亚洲a| 91丨porny丨探花| 日韩欧美色视频| 欧美第一页浮力影院| 女人和拘做爰正片视频| 久久男人资源站| 欧美少妇一级片| 在线观看日本www| 在线免费av播放| 久久久久久三级| 虎白女粉嫩尤物福利视频| 男女超爽视频免费播放| 9191国产视频| 黄色一级片国产| 男人添女荫道口女人有什么感觉| 亚洲综合20p| 人人妻人人澡人人爽精品欧美一区|