看板 java 關於我們 聯絡資訊
我的作法也是同樣利用java.util.Timer去負責計時。 而呼叫Timer.scheduleAtFixedRate()才會得到固定的計時事件發生間隔。 另外也會利用Active Rendering的技巧,直接重繪動畫。而不透過EDT幫 我們重繪,效率會比較高。 若要使用Active Rendering,需要對欲繪圖的圖形元件(JComponent的子類), 呼叫setIgnoreRepaint(false)以避免EDT同時繪製影像。 接著呼叫該元件的getGraphics()取得Graphics物件,往後的繪圖執行緒即可不斷 使用此Graphics重繪影像。 但要注意的是,getGraphics()方法需要此元件已經顯示於螢幕上才能取得物件。 否則回傳的會是null。 我測試過FPS大致都跟設定的值蠻接近的,提供你參考參考 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.62.63
howdou:感謝!!! 04/09 23:37
howdou:http://0rz.tw/3zvwT Active Rendering 04/09 23:45