2010-07-27 102 views
3

當我玩一個視頻遊戲(任何像賽車遊戲或包裝男人或其他任何舊遊戲)如何根據程序中發生的事情顯示在屏幕上?是否有一個大的RenderEverything方法一旦被一個框架執行?儘管如此,這讓我覺得這是一種緩慢的方式。視頻遊戲如何在我的屏幕上顯示?

編輯:作爲一個跟進的問題: 如何做渲染計算機定義幀都渲染GRAPHIS和遊戲activites做就像在房間的字符慢慢地走。像是有一些時鐘不斷增加,每一個渲染和每一個動作都是t的函數嗎?如果是的話,相對於它運行的系統如何定義?

我打算讓這個問題有些同義:當我在屏幕上的光標現在每秒閃爍兩次它怎麼知道第二個是什麼?另外在Java中,我將如何使顯示一行文本然後等待一秒和desplays另一行的程序? (perahps這太太太)

回答

1

他們有一個循環。在這個循環中,它被稱爲渲染圖形的方法,另一個用於處理邏輯(並獲取輸入)。因此,此方法將基於輸入和圖形方法根據已計算的數據計算所有內容 - 例如應該打印的內容及其位置。

這就是你問的嗎?

遊戲開發的問題應該在此處進行:https://gamedev.stackexchange.com/ :)

1

當我玩視頻遊戲(任何老遊戲像一個賽車遊戲或包的人或其他)如何一切都得到了顯示在屏幕上就該計劃的進展而言?是否有一個大的RenderEverything方法一旦被一個框架執行?

取決於遊戲。 2D遊戲可能能夠保留以前幀中呈現的部分場景,尤其是沒有滾動屏幕的舊遊戲。 3D遊戲很可能重畫整個屏幕。同樣好的遊戲永遠不會呈現的一切 - 只有可見的物體。因爲渲染一切都很慢,而僅渲染可見對象的速度顯着加快。

這讓我覺得這是一種緩慢的方式去做這樣的事情。

您可以自由嘗試找到不同的方式。普通遊戲重繪每一個可見的對象。非硬件加速的遊戲可以跟蹤未修改的屏幕區域,並重新繪製僅改變,移動等的對象。硬件加速遊戲不必這樣做 - 它可以在每一幀重新繪製屏幕上的所有內容。隨着遊戲/幀/場景複雜度的增加,在每個幀期間簡單地重新繪製每個可見對象而不是追蹤從前一幀改變的事物會更容易。

0

基本上就是這樣。 「視頻遊戲」實際上是一個大型的狀態機器,其狀態根據幀速率更新。用戶輸入結合遊戲規則和敵人AI會影響遊戲的狀態。渲染玩家對遊戲的每一幀視圖,而不是完整的遊戲視圖。

下載quake source,它在評論中提供了一些有趣的閱讀內容,並且對如何構建遊戲提供了很好的見解。

+0

什麼是地震?這是一款遊戲嗎? – David 2010-07-27 10:16:04

+0

Wiki或idSoftware。謝謝,現在我感覺自己像一個萬歲的朋友:-) – 2010-07-27 10:27:55

+0

@David:「什麼是地震」。那麼,它是PC的第一個完整的3D遊戲之一(如果你不介意下降,那就是)。由idsoftware於1996年製造,仍然可以購買。 http://en.wikipedia.org/wiki/Quake_(video_game)。如果你還沒有聽說過它,你可能應該感到羞恥。 – SigTerm 2010-07-27 13:19:08

相關問題