官术网_书友最值得收藏!

1.4.3 輸入處理

游戲編程的一個特點是編寫的程序需要和用戶交互。用戶的輸入包含各種各樣的信息,例如鍵盤按鍵信息、鼠標移動或單擊信息,甚至游戲手柄的按鍵信息等。這些信息通常是通過事件隊列存放的,在每次運行游戲主循環中的代碼時,程序都需要從事件隊列中取出需要的信息進行處理。

舉個例子,你是一位在戰場上統領大軍的將軍,你需要關注敵方部隊有沒有發生移動。于是你每個小時開始時都會派出一隊偵察兵,讓他們分散在戰場四周獲取情報,偵察兵會在每個小時結束時將情報傳回你的手中。有的情報是關于天氣變化的,有的情報是關于敵人動向的,有的情報是關于糧草供應的。每份情報都被寫在一張紙上,按順序疊放在桌上。你的參謀會每小時看一次情報,檢查這些情報中是否有關于敵人動向的信息。當參謀發現這一類情報后,你會基于相關情報來調動部隊出擊。

游戲編程中的輸入處理與此類似。每一幀里,程序都會收到各種輸入事件,并將它們按順序存放在一個事件隊列中。程序會不停地檢查這個隊列,當程序“關注”的事件發生時,例如玩家按下了空格鍵,程序就會運行相應的代碼來發射炮彈。

主站蜘蛛池模板: 乌什县| 永善县| 沾化县| 宝兴县| 庄浪县| 鄯善县| 开平市| 昭平县| 禹州市| 黄浦区| 武宣县| 芜湖县| 玛纳斯县| 玛多县| 于田县| 和林格尔县| 乐陵市| 邢台市| 琼结县| 兴和县| 鹤山市| 子洲县| 成武县| 浪卡子县| 上犹县| 泽普县| 临江市| 高要市| 同仁县| 长子县| 湾仔区| 永嘉县| 邵东县| 丰宁| 固安县| 怀宁县| 建瓯市| 九龙坡区| 噶尔县| 英吉沙县| 大石桥市|