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

極客小將

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

資訊內(nèi)容

Scratch第三十九講:俄羅斯方塊

極客小將2021-02-18-
這個(gè)俄羅斯方塊本來(lái)CC哥想自己做,后來(lái)看到網(wǎng)上有一個(gè)朋友找了個(gè)例子但是看不懂,那CC哥也先不費(fèi)功夫了,就把這個(gè)例子拿出來(lái)給大家講解一遍。說(shuō)真心話(huà),看別人的例子比自己寫(xiě)還累。 俄羅斯方塊 這個(gè)例子還是挺復(fù)雜的,初學(xué)者確實(shí)很難看懂,CC哥也花了些時(shí)間來(lái)

這個(gè)俄羅斯方塊本來(lái)CC哥想自己做,后來(lái)看到網(wǎng)上有一個(gè)朋友找了個(gè)例子但是看不懂,那CC哥也先不費(fèi)功夫了,就把這個(gè)例子拿出來(lái)給大家講解一遍。說(shuō)真心話(huà),看別人的例子比自己寫(xiě)還累。

俄羅斯方塊


這個(gè)例子還是挺復(fù)雜的,初學(xué)者確實(shí)很難看懂,CC哥也花了些時(shí)間來(lái)。這個(gè)程序的網(wǎng)址如下,大家有興趣可以自己上去下載。https://scratch.mit.edu/projects/2725010/editor
閱讀別人的程序也有很多好處:1:學(xué)習(xí)別人的編程技巧,即使是scratch,但也是一門(mén)編程語(yǔ)言,一樣有很多技巧,所以多看別人的程序,會(huì)學(xué)到很多技巧。而且可以學(xué)到一些很多教程上沒(méi)有的方法。2:學(xué)習(xí)別人的編程思路,一個(gè)人做程序久了,就會(huì)形成自己的固定思路,碰到一個(gè)問(wèn)題就會(huì)用自己最熟悉的思路去編程。多看看別人的程序,就會(huì)看到很多新的思路,開(kāi)闊自己的思維。就跟你做奧數(shù)題一樣啦,不光自己做,還要看看別人的解題方法。
我們觀察一下這個(gè)程序的特點(diǎn),也就是比較獨(dú)特的部分:1:首選我們看這個(gè)程序里有哪些角色,前面7個(gè)就是7個(gè)方塊了,不好理解的是detecter這個(gè)角色。剩下的角色都好理解。我們一會(huì)再去單獨(dú)談detecter這個(gè)角色。

upload/article/images/2021-02-18/8544023eaacbcac597a7d819d4e4d90a.jpg


2:就是這個(gè)方格背景了,所有的方塊都要嚴(yán)格的在這個(gè)方格背景里移動(dòng),這個(gè)看著簡(jiǎn)單,大家學(xué)scratch這么久了,應(yīng)該知道還是有點(diǎn)難度的,如何做到,我們一會(huì)討論。

upload/article/images/2021-02-18/ba8d2a04aa0b55358813e5846e252322.jpg

3:第三個(gè)就是每個(gè)方塊的移動(dòng),如何保證每個(gè)方塊落到另一個(gè)方塊上就會(huì)停下來(lái)。scratch里面一般是檢測(cè)碰到角色,和碰到顏色,那么這個(gè)程序用的哪個(gè)呢?

upload/article/images/2021-02-18/9ec672c669c0ccc98ec02b666ea413db.jpg

4:當(dāng)一個(gè)方塊落到下面停下來(lái)后,怎么實(shí)現(xiàn)這方塊就停留在下面,而新的同樣的角色還在上面?這個(gè)是用什么方法實(shí)現(xiàn)呢?

upload/article/images/2021-02-18/99632f56d2ceb53577e85c08f07ffd11.jpg


5:就是當(dāng)方塊把某一層全部鋪滿(mǎn)的的時(shí)候,程序怎么能檢測(cè)到呢?通過(guò)什么來(lái)檢測(cè)呢?這是一個(gè)難點(diǎn),說(shuō)句實(shí)話(huà),CC哥想了多方案,發(fā)現(xiàn)最后都沒(méi)有設(shè)計(jì)者的構(gòu)思的簡(jiǎn)單方便。

upload/article/images/2021-02-18/7ea968c8817485709fbbd71d66ed4b02.jpg

6:當(dāng)檢測(cè)到某一層鋪滿(mǎn)之后,程序怎么實(shí)現(xiàn)的消除呢?這也是個(gè)難點(diǎn),因?yàn)橄趺磳?shí)現(xiàn)呢?而且你還要保證上面的方塊全部移下來(lái)。消除完之后會(huì)有很多方塊就不是原來(lái)的角色形狀了。

upload/article/images/2021-02-18/9b703c77dbbc1ed447957cd77c5eb07d.jpg


這是CC哥在分析這個(gè)程序時(shí)所發(fā)現(xiàn)的一些技術(shù)點(diǎn),如果我們能自己想出解決的辦法,或者能看懂編程者的方法,那么我們自己也就可以寫(xiě)這個(gè)程序了。另外一些技術(shù)點(diǎn)就比較容易理解,CC哥就不花篇幅講了,比如玩這個(gè)俄羅斯方塊,大家都知道角色可以選擇,可以有四個(gè)方向,是不是大家第一的反應(yīng)就是用角色旋轉(zhuǎn)來(lái)做?而編程者就不是用旋轉(zhuǎn)來(lái)做的,而是用造型來(lái)處理的。是不是很巧妙?所以當(dāng)按旋轉(zhuǎn)按鈕的時(shí)候,程序只要選造型就好了。

upload/article/images/2021-02-18/dab296dc2a72ab006c30e4ca9726343a.jpg

程序解析


我們先從簡(jiǎn)單的問(wèn)題出發(fā),第二個(gè)問(wèn)題,編程者怎么控制這些角色沿著方格來(lái)運(yùn)動(dòng)的。而且在移動(dòng)過(guò)程中如何檢測(cè)碰到其他方塊?

upload/article/images/2021-02-18/b303f56795b6b8a528118f8ac34fbb55.jpg

通過(guò)這個(gè)就能看出,其實(shí)每一步移動(dòng)距離都是20,也就是方格的大小也是20。如何檢測(cè)碰到其他角色呢?我們發(fā)現(xiàn)只有一個(gè)檢測(cè)命令,就是檢測(cè)黑色。如果移動(dòng)后發(fā)現(xiàn)碰到黑色,就退回上一步。

upload/article/images/2021-02-18/f57c12d945648a6c61a8c25d3cfd408e.jpg

從這里我們可以發(fā)現(xiàn),這個(gè)編程其實(shí)最復(fù)雜的地方(設(shè)計(jì)程序經(jīng)常會(huì)碰到雖然不難,但是很復(fù)雜的情況)就是如何精準(zhǔn)的控制位置,和檢測(cè)多個(gè)角色之間的相互碰撞。在檢測(cè)方面編程者用了一招最簡(jiǎn)單的方式,通過(guò)給每一個(gè)方塊加上一圈黑色的邊,把整個(gè)方格區(qū)域的四周加上了一圈黑邊,這樣只需要檢測(cè)黑色,就可以實(shí)現(xiàn)所有復(fù)雜的角色之間相互碰撞的問(wèn)題了。但是這樣簡(jiǎn)單的方式也帶來(lái)了問(wèn)題,就是要精準(zhǔn)的控制角色的尺寸和位置。下面這個(gè)圖看出問(wèn)題來(lái)沒(méi)有?
本來(lái)這個(gè)木棍方塊應(yīng)該在往下走一格的,但是肯定是碰到了下面黃色方塊或橙色的T字方塊的邊上,導(dǎo)致沒(méi)有落下來(lái)。這就是編程者沒(méi)有精準(zhǔn)的處理好角色的尺寸。這樣的問(wèn)題在消除的時(shí)候也會(huì)出現(xiàn)。

upload/article/images/2021-02-18/75d069391f4826f276073a348cd610b7.jpg

通過(guò)分析,回答了剛才2和3的問(wèn)題。
然后我們看一下這幾個(gè)方塊角色的程序,基本上都一樣,CC哥只簡(jiǎn)單講這個(gè)T方塊就好了:

upload/article/images/2021-02-18/cde165fc247e334ce0707766ae0834c8.jpg


1:當(dāng)接收到T的消息,也就是說(shuō)出來(lái)一個(gè)T方塊,那么就往下落好了,程序不復(fù)雜,在沒(méi)有碰到黑色以前(不論是其他角色和邊框)一直下落,每次一格。2:如果碰到了,就回退一步,這樣可以停留在被碰物體的上方。3:重點(diǎn)來(lái)了,當(dāng)停穩(wěn)后,圖章! 圖章命令大家學(xué)過(guò)了,就是在原地畫(huà)一個(gè)該角色。這就回答了剛才第四個(gè)問(wèn)題,編程者是通過(guò)圖章命令來(lái)讓角色停留在原地的。并不是通過(guò)克隆。

upload/article/images/2021-02-18/996b0d4ebf266972d8b871636cd2a1c1.jpg


這個(gè)是用上箭頭來(lái)進(jìn)行方塊的旋轉(zhuǎn),就是每按一次切換一個(gè)造型,其中在切換時(shí)一定要檢測(cè)一下是否碰到其他角色或邊框,如果碰到,就不做旋轉(zhuǎn)。

upload/article/images/2021-02-18/c25b8db622028909c11b0844b00364e4.jpg

這段程序是在程序開(kāi)始界面里顯示一下方塊。

upload/article/images/2021-02-18/052b4232ec4aa9d27921ea15b1978f4a.jpg

upload/article/images/2021-02-18/ab7d03d7f19529896d95bf5acbcc2d96.jpg

這段程序是在方格的右上角提醒下一個(gè)要出現(xiàn)的方塊的樣子。

upload/article/images/2021-02-18/f33f8807917320799c9177f0e379e9e7.jpg

upload/article/images/2021-02-18/86d9eba2302ba8a2f77c14e632633c23.jpg


關(guān)于檢測(cè)和消除這部分是程序里難度最大的部分,CC哥下一課再跟大家講。

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

預(yù)約試聽(tīng)課

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

主站蜘蛛池模板: 日韩欧美黄色 | 亚洲av毛片一区二区三区电影 | 69视频在线免费观看 | 亚洲综合视频 | 欧美激情 在线 | 精品久久久久久久人人人人传媒 | 日韩免费一区二区 | 欧美一区二区在线 | 18资源在线www免费 | 日韩久久一区二区 | 精品久久成人网 | 国产一区二区影院 | 亚洲a毛片| 国产97在线看 | 欧洲一区二区三区免费视频 | 偷拍自拍在线 | 久久精彩视频 | 国产成人av一区二区三区 | 91精品久久久久久久久久入口 | 中文字幕三级 | 精品欧美一区二区精品久久久 | a v视频在线播放 | 丰满白嫩尤物一区二区 | 日韩在线 中文字幕 | 欧美性猛交xxxx黑人交 | 国产午夜亚洲精品理论片色戒 | 精品美女在线观看 | 亚洲国产91| 免费99视频 | 欧美a区 | 国产黄大片在线观看 | 极品一区 | 国产成人精品一区二区三区在线 | 亚洲精品在线视频观看 | 激情毛片| 中文字幕av网站 | 久久99精品久久久久久园产越南 | 亚洲成人免费在线观看 | 欧美 日韩 中文字幕 | 久久久国产精品视频 | 欧洲xxx|