2017-04-16 57 views
0

我從各種教程中學習使用JFrame頂部的Canvas來渲染2D遊戲引擎的圖像。我不得不創建一個BufferStrategy來保持圖像的平滑等,但最近我聽說使用JPanel來渲染圖像。我應該使用JPanel嗎?如果是這樣,我還需要創建一個BufferStrategy還是集成了它。我是否真的誤導了我,我是否有道理?我是一名初學者,所以請隨時嘗試糾正我並指導我 - 由於某種原因,我非常不知所措:P謝謝。爲2D遊戲引擎(和緩衝?)使用Canvas和JPanel之間的差異

回答

1

BufferedStrategy

使用「活動繪畫」。它給你當某樣東西畫

  • 提供超過幀速率更好的控制直接控制
  • 具有低級別的連接,並提供訪問,硬件加速

搖擺

使用「被動繪畫」。有一個RepaintManager這是控制時間安排,什麼被繪製,這是張貼到事件調度線程和得到的處理與所有其他事件。

  • 塗裝系統
  • 可變幀頻

兩個

通過相同的渲染管線相連,通常,這是DirectX或OpenGL的

遊戲沒有直接控制引擎

取決於。大多數遊戲引擎必須以Canvas開頭,因爲這通常是將Java鏈接到底層渲染引擎的唯一方式。大多數遊戲引擎都是低級原生綁定或DirectX或OpenGL的輕量級打包,可直接訪問這些API(in)

幾個引擎可能仍然直接使用Swing,但它們會受到限制,可能適用於您不需要3D或高/一致的幀速率。

Chooice

這是個人觀點。你需要一個固定的幀速率嗎?你想做3D還是2D足夠?你想執行低級功能(紋理操作等)?

有益的參考