跳轉到內容

TI-Basic Z80 程式設計/GetKey

來自華夏公益教科書,開放的書籍,開放的世界

在編寫某些 TI-Basic 程式時,獲取單個按鍵按下操作可以非常有用,方便進行高階選單處理或遊戲開發。這可以透過getKey(PRGM I/O 7). getKey來實現,它在指令執行時返回按鍵按下的數值。

getKey→variable

按鍵程式碼圖

[編輯 | 編輯原始碼]

儲存到變數中的值是一個特殊數字,代表按下的按鍵。右側的圖示顯示了與按鍵相對應的值。

每個按鍵都分配有一個兩位數或三位數。第一個數字(如果數字是三位數,則為前兩個數字)是按鍵的行號(按鍵在計算器上的位置,向下數),最後一個數字是按鍵的列號(按鍵在行上的位置,向右數)。因此 SIN 按鍵位於第五行第二列,因此其程式碼為 52。唯一略微例外的是方向鍵。, ,和都被視為第二行的一部分,並相應地編號。ON 沒有可訪問的數值(理論上應該是101;但是,它充當程式中斷按鈕)。

因為getKey只返回指令執行期間的按鍵按下操作,所以它經常返回 0,因為在指令執行期間沒有按鍵按下。但是,getKey指令可以在迴圈中執行,允許隨時註冊使用者輸入。

為此,使用以下簡單程式碼

0→K
Repeat K
getKey→K
End

該程式將等待使用者按下鍵盤上的按鍵,然後退出迴圈並繼續執行。由於getKey如果未按下任何按鍵,則返回 0,因此程式碼會重複,因為Repeat如果條件為 0 或 false,則會迴圈。

請注意,變數 K 是將getKey儲存到的預設變數。

可以使用 Ans 來減少 4 個位元組

Repeat Ans
getKey
End

如果getKey被呼叫,但沒有儲存到變數中,該值將儲存到 Ans 中。

試試看!

[編輯 | 編輯原始碼]

嘗試以下示例來練習使用getKey.

玩家移動

[編輯 | 編輯原始碼]

使用getKey,在螢幕上繪製一個玩家(使用單個字元,例如*),並允許使用者按下方向鍵在 X 和 Y 方向上移動玩家。確保玩家不會移出螢幕。

解決方案
:1→X :1→Y :0→K :ClrHome :While 1 :Repeat K :getKey→K :End :Output(Y,X," ") :If K=25 and Y>1 :Y-1→Y :If K=34 and Y<7 :Y+1→Y :If K=24 and X>1 :X-1→X :If K=26 and X<16 :X+1→X :Output(Y,X,"*") :End



上一節:條件指令
下一節:選單
目錄:TI-Basic Z80 程式設計

華夏公益教科書