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

極客小將

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

資訊內容

Scratch第十三講:按鍵的技巧

極客小將2021-03-14-
檢測按鍵事件好像非常容易的,因為有一個事件命令就叫當按下...鍵。

檢測按鍵事件好像非常容易的,因為有一個事件命令就叫當按下...鍵。

upload/article/images/2021-03-14/46ac7b9133feaaf3355cb0686ae3fa00.jpg

這個命令就可以檢測多所有的按鍵。平常我們就經常用到這個命令,比如用上下左右鍵來調整角色的方向,用空格鍵操作一些角色的動作,如發射子彈,跳起來等。

但是我們會碰到另一種按鍵的情形,就是持續按下,或者說長時間按下空格鍵,會出現什么情況。我們試一下。

upload/article/images/2021-03-14/200fc72cfee6364805690b9556edd068.jpg

https://cdn.china-scratch.com/timg/180912/22512C195-2.gif

發現沒有,在按著空格鍵不動的時候,小貓走了10步后先停頓了一下,然后才會連續運動。而不是一直連續運動。

這是什么情況呢?CC哥覺得這應該Scratch的設計者在做這個命令的時候,在程序里增加了抗干擾的代碼。一般來說,按鍵操作每個人都不一樣,有的人按的很快,有的人對鍵盤不熟悉,按的很慢,那么程序要判斷你是按了幾次呢?所以這里面就有一個抗干擾代碼,來判斷你是只按了一次鍵,而不是想連著一直按,所以給了個停頓來消除按鍵中的干擾因素。當然如果你確實一直按著不撒手,那說明你就是要一直按著,也就繼續執行了。所以這個事件命令就是針對一次性的按鍵事件,而不是用來做按著不放的按鍵事件。

但是如果我們就是希望一直按著鍵盤,而不是只是想按一下呢?比如我們需要用鍵盤來控制小貓的行走,你肯定希望當按鍵按下時,小貓就能連續走,而不是還要停一下。那怎么編寫這段代碼呢?

upload/article/images/2021-03-14/00a23ac5547f403a6469889d9213060a.jpg

我們用一個循環偵測組合,不斷的去檢測是否空格按鍵被按下,如果按下了就移動10步。讓我們來看看這段代碼的執行效果。

https://cdn.china-scratch.com/timg/180912/22512Lc6-4.gif

看,這走起來是不是行云流水一般。https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif

不過感覺上有點不方便,之前空格鍵檢測就用了一條事件命令,而現在卻要寫一段代碼,如果是一個大型程序,反復要檢測空格鍵怎么辦,那不是反復要寫一段代碼?

不用擔心,我們可以用之前學過的一個命令解決這個問題。就是廣播和接收。

upload/article/images/2021-03-14/7ab168fecc96601bed2297f91fce44fe.jpg

看,把循環判斷中的移動命令換成了廣播命令,廣播一條空格鍵被按下的消息,然后用接收命令來接收到消息后執行后面的代碼。這樣在大型程序里就不需要反復去寫一段代碼了,只需要用一條接收消息的命令就可以了。是否很像其他編程工具和數學里的函數以及函數調用?原來廣播命令還有這種使用方式,是不是很開心。

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

預約試聽課

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

主站蜘蛛池模板: 昌都县| 司法| 科技| 峨眉山市| 开平市| 颍上县| 开平市| 巴东县| 三明市| 榆树市| 互助| 微博| 乌拉特中旗| 长沙县| 鄂伦春自治旗| 伊宁市| 额敏县| 武功县| 遵义县| 晴隆县| 陆河县| 呼和浩特市| 广安市| 大田县| 洛浦县| 香格里拉县| 湄潭县| 大丰市| 洛扎县| 城市| 芦溪县| 澄城县| 聂拉木县| 澜沧| 墨江| 苗栗市| 札达县| 中方县| 常德市| 长海县| 贵南县|