書名: Python AI游戲編程入門:基于Pygame和PyTorch作者名: 肖凱本章字?jǐn)?shù): 455字更新時間: 2024-10-25 14:10:47
1.4.3 輸入處理
游戲編程的一個特點是編寫的程序需要和用戶交互。用戶的輸入包含各種各樣的信息,例如鍵盤按鍵信息、鼠標(biāo)移動或單擊信息,甚至游戲手柄的按鍵信息等。這些信息通常是通過事件隊列存放的,在每次運(yùn)行游戲主循環(huán)中的代碼時,程序都需要從事件隊列中取出需要的信息進(jìn)行處理。
舉個例子,你是一位在戰(zhàn)場上統(tǒng)領(lǐng)大軍的將軍,你需要關(guān)注敵方部隊有沒有發(fā)生移動。于是你每個小時開始時都會派出一隊偵察兵,讓他們分散在戰(zhàn)場四周獲取情報,偵察兵會在每個小時結(jié)束時將情報傳回你的手中。有的情報是關(guān)于天氣變化的,有的情報是關(guān)于敵人動向的,有的情報是關(guān)于糧草供應(yīng)的。每份情報都被寫在一張紙上,按順序疊放在桌上。你的參謀會每小時看一次情報,檢查這些情報中是否有關(guān)于敵人動向的信息。當(dāng)參謀發(fā)現(xiàn)這一類情報后,你會基于相關(guān)情報來調(diào)動部隊出擊。
游戲編程中的輸入處理與此類似。每一幀里,程序都會收到各種輸入事件,并將它們按順序存放在一個事件隊列中。程序會不停地檢查這個隊列,當(dāng)程序“關(guān)注”的事件發(fā)生時,例如玩家按下了空格鍵,程序就會運(yùn)行相應(yīng)的代碼來發(fā)射炮彈。
推薦閱讀
- UML和模式應(yīng)用(原書第3版)
- Learning Chef
- 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程
- Learning Elixir
- 程序員考試案例梳理、真題透解與強(qiáng)化訓(xùn)練
- C語言最佳實踐
- Java深入解析:透析Java本質(zhì)的36個話題
- PLC編程及應(yīng)用實戰(zhàn)
- The DevOps 2.5 Toolkit
- Java網(wǎng)絡(luò)編程核心技術(shù)詳解(視頻微課版)
- C陷阱與缺陷
- PHP 7 Programming Blueprints
- Learning Redux
- Java程序設(shè)計(項目教學(xué)版)
- JavaScript程序設(shè)計基礎(chǔ)教程(慕課版)