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

1.4.1 游戲主循環(huán)

除非用戶中斷游戲,否則游戲程序需要一直運行。所以游戲程序中必然存在一個循環(huán),循環(huán)中的代碼反復運行。這個循環(huán)稱為游戲循環(huán)(game loop)。每運行一次循環(huán)中的代碼,稱為游戲中的一幀(frame)。基于人類眼球的生理特性,游戲一般采用30或者60的幀率來運行,設置游戲幀率為30,就意味著每秒運行30次循環(huán),換句話說,單次循環(huán)消耗的時間要控制在33毫秒左右,不能過多也不能過少。游戲中能否達到這個幀率依賴于很多因素,如果硬件性能很強大,代碼中的計算很簡單,一個循環(huán)中的代碼可能只需要幾毫秒就運行完畢。

游戲循環(huán)中應該包括主要的游戲邏輯代碼,例如處理玩家輸入、更新游戲數(shù)據(jù)、生成游戲輸出這3個階段的代碼。以經典的射擊游戲《坦克大戰(zhàn)》為例,玩家輸入可能是鍵盤的按鍵,即通過鍵盤控制方向和發(fā)射炮彈,當用戶按下發(fā)射炮彈對應的按鍵時,程序要保存并處理這個信息。在更新游戲數(shù)據(jù)階段,程序要根據(jù)用戶的輸入信息,在內存中生成炮彈對象,如果之前已經發(fā)射了炮彈,則需要判斷炮彈是否擊中敵人,敵人是否被擊殺。這里可能要處理上百個對象和多種游戲邏輯。在生成游戲輸出階段,最重要的事情之一就是繪制顯示在屏幕上的內容,如坦克、發(fā)射的炮彈、爆炸效果等。

主站蜘蛛池模板: 禹城市| 安岳县| 寻乌县| 织金县| 华容县| 新乡县| 阜新| 兴安县| 交口县| 武山县| 蒙自县| 宁海县| 中卫市| 新沂市| 布拖县| 阿鲁科尔沁旗| 台湾省| 饶平县| 玛纳斯县| 施秉县| 临猗县| 法库县| 河南省| 雅江县| 茂名市| 葵青区| 梁平县| 甘孜县| 旺苍县| 南郑县| 仁布县| 巴林左旗| 长春市| 军事| 花莲市| 宾川县| 阳江市| 富锦市| 乌拉特后旗| 黑河市| 乌鲁木齐市|