我從各種教程中學習使用JFrame頂部的Canvas來渲染2D遊戲引擎的圖像。我不得不創建一個BufferStrategy來保持圖像的平滑等,但最近我聽說使用JPanel來渲染圖像。我應該使用JPanel嗎?如果是這樣,我還需要創建一個BufferStrategy還是集成了它。我是否真的誤導了我,我是否有道理?我是一名初學者,所以請隨時嘗試糾正我並指導我 - 由於某種原因,我非常不知所措:P謝謝。爲2D遊戲引擎(和緩衝?)使用Canvas和JPanel之間的差異
0
A
回答
1
BufferedStrategy
使用「活動繪畫」。它給你當某樣東西畫
- 提供超過幀速率更好的控制直接控制
- 具有低級別的連接,並提供訪問,硬件加速
搖擺
使用「被動繪畫」。有一個RepaintManager
這是控制時間安排,什麼被繪製,這是張貼到事件調度線程和得到的處理與所有其他事件。
- 塗裝系統
- 可變幀頻
兩個
通過相同的渲染管線相連,通常,這是DirectX或OpenGL的
遊戲沒有直接控制引擎
取決於。大多數遊戲引擎必須以Canvas
開頭,因爲這通常是將Java鏈接到底層渲染引擎的唯一方式。大多數遊戲引擎都是低級原生綁定或DirectX或OpenGL的輕量級打包,可直接訪問這些API(in)
幾個引擎可能仍然直接使用Swing,但它們會受到限制,可能適用於您不需要3D或高/一致的幀速率。
Chooice
這是個人觀點。你需要一個固定的幀速率嗎?你想做3D還是2D足夠?你想執行低級功能(紋理操作等)?