簡體   English   中英

Java AWT是否適合2D游戲渲染?

[英]Is Java AWT suitable for 2d game rendering?

我目前正在將2D游戲引擎移植到Java。 我看了一些關於stackoverflow的游戲庫。 但是,我所看到的非常簡單,甚至沒有說明它們是否支持alpha透明性,因此我決定移植我已經為其編寫邏輯的C ++渲染器。

該渲染器是純軟件渲染器,它使用平鋪來避免不必要的重新渲染。 通過創建一個比我的輸出窗格大一點的“屏幕外緩沖區”,並在每幀上將這個屏幕外緩沖區拖到我的輸出上,我優化了其滾動性能。 這樣,我可以避免僅在地圖上滾動一個像素就不必要地重畫圖塊。

我使用Java的AWT來實現它,將較大的BufferedImage用於屏幕外緩沖區。 CPU使用率還可以(大約是C ++的兩倍),但是連續滾動存在一個奇怪的問題,在這種情況下,渲染器每隔一秒鍾左右就會落后大約0.2秒。

由於在這段時間內我自己的代碼中什么也不會發生,並且如果我不將屏幕外緩沖區繪制到主視圖上時尖峰消失,那么我只能得出結論,Java正在對其自身進行一些內部優化。 但是,我不確定它會做什么,也不知道為了消除峰值,我必須刪除自己的哪些優化。 另外,可能是Java AWT並不是在考慮連續的,高FPS滾動的情況下制作的,因此完全不能用於此目的。

有什么辦法可以消除這些尖峰嗎?

問題更適合於: https : //gamedev.stackexchange.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM