在以往的Scratch實(shí)例中,我們通常只用到偵測(cè)模塊部分功能比如偵測(cè)方向鍵來完成小游戲,今天我們利用偵測(cè)模塊監(jiān)控鍵盤上的字母、數(shù)字等按鍵的輸入,完成一個(gè)監(jiān)測(cè)并記錄鍵盤輸入的小程序。
為了能做到偵測(cè)全鍵盤輸入,首先要對(duì)鍵盤上的按鍵進(jìn)行分類并且整理成一個(gè)列表。按鍵種類可以分為四種:符號(hào)(。,:),數(shù)字(1234),字母(AaBb),特殊按鍵(enter,space)。
新建“鍵盤按鍵”列表,在列表中輸入英文字母、數(shù)字和字符。
字母有大小寫之分,為了節(jié)約代碼量,在列表中一個(gè)字母的大小寫保存在同一項(xiàng)中,在列表中的序號(hào)是1到26。
我們還需要新建變量進(jìn)行保存和識(shí)別數(shù)據(jù)?!按笮憽庇脕碛涗涀帜复髮懟蛘咝懙臓顟B(tài),“輸入”用來保存每次按鍵輸入時(shí)的狀態(tài),“我的變量”用來保存輸出的結(jié)果。“保存文本”列表記錄通過鍵盤輸入的內(nèi)容信息。
1. 程序初始化
根據(jù)程序的最終效果將一些角色隱藏,將變量設(shè)置為初始值。程序運(yùn)行后,當(dāng)用戶輸入大小寫字母或者是數(shù)字時(shí),按下空格鍵后程序?qū)⒂脩糨斎氲膬?nèi)容添加進(jìn)“保存文本”列表中,并且清空其他內(nèi)容恢復(fù)為初始狀態(tài)。
當(dāng)點(diǎn)擊運(yùn)行按鈕后,首先清除“保存文本”列表中的所有內(nèi)容,將“大小寫”狀態(tài)設(shè)置為小寫,其他變量恢復(fù)成空狀態(tài)。切換大小寫可以通過上下鍵切換(圖1)。
2. 啟動(dòng)監(jiān)控文本輸入積木
當(dāng)按下任意鍵啟動(dòng)按鈕識(shí)別。觸發(fā)“監(jiān)控鍵盤輸入文本”自定義積木。其中變量I用來做循環(huán)的序列號(hào),不同的序列號(hào)對(duì)應(yīng)著不同的字符以及數(shù)字,將鍵盤按鍵列表中的個(gè)數(shù)當(dāng)作循環(huán)的次數(shù),當(dāng)用戶按下鍵盤中的鍵后對(duì)應(yīng)從列表中尋找指定的字符,如果成功從列表中找到了字符那么就輸出到面板上,如果查詢失敗,輸出為空。用戶可以通過對(duì)列表的序列進(jìn)行匹配以確定內(nèi)容所在的位置以及內(nèi)容(圖2)。
3. 輸入大小寫字母
接下來我們要根據(jù)輸入的不同字符進(jìn)行條件判斷。當(dāng)需要輸入大寫字母時(shí),從列表中提取對(duì)應(yīng)項(xiàng)的第二個(gè)字符,小寫提取該項(xiàng)的第一個(gè)字符(圖3)。
4. 輸入數(shù)字
當(dāng)用戶輸入數(shù)字,在列表中查詢數(shù)字對(duì)應(yīng)的序號(hào)(27-36),查詢成功后直接輸出(圖4)。
5. 輸出字符記錄
用“我的變量”來臨時(shí)存儲(chǔ)輸入內(nèi)容,將新輸入的字符連接在“我的變量”之后。全部輸入完成后只需要按下空格鍵,便將“我的變量”存入“保存文本”列表(圖5)。
目前的代碼只完成了輸入字母和數(shù)字。在實(shí)際的應(yīng)用中我們還需要輸入其他種類的字符,如果輸入錯(cuò)誤還需要用到退格鍵。那么該如何修改代碼呢?挑戰(zhàn)一下自己。