Re: [問題] 關於動畫模擬 使用Thread 程式的架構
我的作法也是同樣利用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
推
04/09 23:37, , 1F
04/09 23:37, 1F
推
04/09 23:45, , 2F
04/09 23:45, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 3 之 4 篇):