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
|