- Python AI游戲編程入門:基于Pygame和PyTorch
- 肖凱
- 500字
- 2024-10-25 14:10:47
1.4.1 游戲主循環
除非用戶中斷游戲,否則游戲程序需要一直運行。所以游戲程序中必然存在一個循環,循環中的代碼反復運行。這個循環稱為游戲循環(game loop)。每運行一次循環中的代碼,稱為游戲中的一幀(frame)。基于人類眼球的生理特性,游戲一般采用30或者60的幀率來運行,設置游戲幀率為30,就意味著每秒運行30次循環,換句話說,單次循環消耗的時間要控制在33毫秒左右,不能過多也不能過少。游戲中能否達到這個幀率依賴于很多因素,如果硬件性能很強大,代碼中的計算很簡單,一個循環中的代碼可能只需要幾毫秒就運行完畢。
游戲循環中應該包括主要的游戲邏輯代碼,例如處理玩家輸入、更新游戲數據、生成游戲輸出這3個階段的代碼。以經典的射擊游戲《坦克大戰》為例,玩家輸入可能是鍵盤的按鍵,即通過鍵盤控制方向和發射炮彈,當用戶按下發射炮彈對應的按鍵時,程序要保存并處理這個信息。在更新游戲數據階段,程序要根據用戶的輸入信息,在內存中生成炮彈對象,如果之前已經發射了炮彈,則需要判斷炮彈是否擊中敵人,敵人是否被擊殺。這里可能要處理上百個對象和多種游戲邏輯。在生成游戲輸出階段,最重要的事情之一就是繪制顯示在屏幕上的內容,如坦克、發射的炮彈、爆炸效果等。
推薦閱讀
- 微服務與事件驅動架構
- Animate CC二維動畫設計與制作(微課版)
- OpenNI Cookbook
- concrete5 Cookbook
- 從0到1:Python數據分析
- Android底層接口與驅動開發技術詳解
- Learning Hunk
- Visual C#.NET程序設計
- 區塊鏈技術進階與實戰(第2版)
- Developing SSRS Reports for Dynamics AX
- Java EE 7 with GlassFish 4 Application Server
- Instant Apache Camel Messaging System
- 人人都能開發RPA機器人:UiPath從入門到實戰
- 實驗編程:PsychoPy從入門到精通
- 劍指大數據:企業級電商數據倉庫項目實戰(精華版)