資訊內(nèi)容
Scratch第十三講:按鍵的技巧
檢測(cè)按鍵事件好像非常容易的,因?yàn)橛幸粋€(gè)事件命令就叫當(dāng)按下...鍵。
這個(gè)命令就可以檢測(cè)多所有的按鍵。平常我們就經(jīng)常用到這個(gè)命令,比如用上下左右鍵來(lái)調(diào)整角色的方向,用空格鍵操作一些角色的動(dòng)作,如發(fā)射子彈,跳起來(lái)等。
但是我們會(huì)碰到另一種按鍵的情形,就是持續(xù)按下,或者說(shuō)長(zhǎng)時(shí)間按下空格鍵,會(huì)出現(xiàn)什么情況。我們?cè)囈幌隆?
發(fā)現(xiàn)沒有,在按著空格鍵不動(dòng)的時(shí)候,小貓走了10步后先停頓了一下,然后才會(huì)連續(xù)運(yùn)動(dòng)。而不是一直連續(xù)運(yùn)動(dòng)。
這是什么情況呢?CC哥覺得這應(yīng)該Scratch的設(shè)計(jì)者在做這個(gè)命令的時(shí)候,在程序里增加了抗干擾的代碼。一般來(lái)說(shuō),按鍵操作每個(gè)人都不一樣,有的人按的很快,有的人對(duì)鍵盤不熟悉,按的很慢,那么程序要判斷你是按了幾次呢?所以這里面就有一個(gè)抗干擾代碼,來(lái)判斷你是只按了一次鍵,而不是想連著一直按,所以給了個(gè)停頓來(lái)消除按鍵中的干擾因素。當(dāng)然如果你確實(shí)一直按著不撒手,那說(shuō)明你就是要一直按著,也就繼續(xù)執(zhí)行了。所以這個(gè)事件命令就是針對(duì)一次性的按鍵事件,而不是用來(lái)做按著不放的按鍵事件。
但是如果我們就是希望一直按著鍵盤,而不是只是想按一下呢?比如我們需要用鍵盤來(lái)控制小貓的行走,你肯定希望當(dāng)按鍵按下時(shí),小貓就能連續(xù)走,而不是還要停一下。那怎么編寫這段代碼呢?
我們用一個(gè)循環(huán)偵測(cè)組合,不斷的去檢測(cè)是否空格按鍵被按下,如果按下了就移動(dòng)10步。讓我們來(lái)看看這段代碼的執(zhí)行效果。
看,這走起來(lái)是不是行云流水一般。
不過(guò)感覺上有點(diǎn)不方便,之前空格鍵檢測(cè)就用了一條事件命令,而現(xiàn)在卻要寫一段代碼,如果是一個(gè)大型程序,反復(fù)要檢測(cè)空格鍵怎么辦,那不是反復(fù)要寫一段代碼?
不用擔(dān)心,我們可以用之前學(xué)過(guò)的一個(gè)命令解決這個(gè)問題。就是廣播和接收。
看,把循環(huán)判斷中的移動(dòng)命令換成了廣播命令,廣播一條空格鍵被按下的消息,然后用接收命令來(lái)接收到消息后執(zhí)行后面的代碼。這樣在大型程序里就不需要反復(fù)去寫一段代碼了,只需要用一條接收消息的命令就可以了。是否很像其他編程工具和數(shù)學(xué)里的函數(shù)以及函數(shù)調(diào)用?原來(lái)廣播命令還有這種使用方式,是不是很開心。
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過(guò)郵件及時(shí)和我們聯(lián)系刪除

- 上一篇
Scratch軟件介紹
Scratch軟件都包括什么內(nèi)容呢?下面簡(jiǎn)單介紹一下: 打開軟件后,會(huì)看到下面的內(nèi)容。這個(gè)軟件分為左上-展示區(qū)、左下角色區(qū)、右-腳本區(qū)三大部分,中間最復(fù)雜的部分是模塊區(qū)。此外還有工具欄、選項(xiàng)卡等其它部分,我們?cè)诤竺娴恼n程中慢慢來(lái)學(xué)習(xí)了解。 我們
- 下一篇
Scratch 作品欣賞:沙漠歷險(xiǎn)記(小學(xué)4-6年級(jí)組)
“沙漠歷險(xiǎn)記” - 小學(xué)4-6年級(jí)組學(xué)生作品,通過(guò) Scratch 平臺(tái)制作完成,是一個(gè)在電腦上用鼠標(biāo)控制操作的互動(dòng)游戲。作者:Sun Yong Heng(小學(xué)5年級(jí))