現在我有一個不斷重畫屏幕的主遊戲循環。由於我需要減慢這個線程,但繼續以更快的速度繪製其他項目,我需要做一個新的線程。問題是我不知道如何去做一個新的線程,也可以繪製到屏幕我知道如何創建一個新的線程,我只是堅持如何在新線程中實現Graphics2D繪圖。例如,我有下面的代碼是典型的起點,然後是另一個類中定義的繪製方法,它指導什麼以及何時繪製。如果我想分手,並有另一個線程繪製和做自己的事情,我該怎麼做?如何創建一個以Java繪製屏幕的新線程?
我是否必須創建一個新的類來創建一個全新的PaintComponent()?或者我會簡單地創建一個新的Graphics2D對象,以便我可以使用不同的字體顏色等?我想最讓我困惑的是我不能只調用一個不同的繪製方法,因爲我仍然需要通過g2d作爲參數。所以在我看來,我需要在已有g2d對象的另一個方法中創建線程。
如果這讓我感到困惑,我會道歉,因爲我還是JAVA的初學者。如果您需要更多信息,請告訴我。先謝謝你。
public abstract void draw(Graphics2D g2d);
@Override
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
super.paintComponent(g2d);
draw(g2d);
}
我離成爲遊戲專家很遠,但我認爲你應該堅持一個獨特的遊戲循環,重繪每次迭代必須以快速重繪的東西,並且只繪製應該繪製在每N次迭代緩慢。 –
這當然是一種解決問題的方法。如果我明白你在說什麼,你建議我可以使用一個計數器,並且只有一個循環每一次都有很多次數。我認爲在這種情況下,雖然我真的需要使用多個線程。無論如何,學習如何更好地使用它們會更好,因爲更高級的遊戲幾乎需要它。謝謝您的意見。我會拭目以待,看看其他人是否也有一些想法。 – user3312030