2013-07-30 38 views
5

我正在開發我自己的遊戲引擎,名爲FGame,而且我有這個圖形錯誤,真的讓我感到困擾,而且我不確定問題出在哪裏。對於圖形,我使用了一個自定義的Image類,它有一個二維像素數組來存儲它的數據。我還有一個屏幕類,它擴展了Image類,屏幕的像素數據用於通過BufferedImage java類繪製到JFrame。Java自定義像素渲染引擎bug

如果我正在繪製圖像,並將其移動到屏幕上,則會出現一個圖形錯誤,它會在屏幕上的某些點處以垂直線扭曲像素。

這裏是一個視頻,顯示我想描述的錯誤:http://www.youtube.com/watch?v=MnGCuHW5neI,這裏是一個鏈接到源代碼:https://github.com/Frechetta/FGame

+0

+1調查 –

+0

你是什麼意思扭曲的良好來源? – arynaq

+0

當圖像水平移動時,該圖像中穿過x軸上的某些點的像素會向上或向下移動一個像素,然後一旦位於該點的另一側就會再次移回。 –

回答

1

謝謝@arynaq和@Max幫助我解決問題。我會爲遇到此問題的其他人發佈舊代碼和新代碼。

舊代碼:

frame = new JFrame(nameA); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setLayout(new BorderLayout()); 
frame.add(this, BorderLayout.CENTER); 
frame.pack(); 
frame.setResizable(false); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true); 

新代碼:

frame = new JFrame(nameA); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setLayout(null); 
this.setSize(getPreferredSize()); 
frame.add(this); 
frame.pack(); 
frame.setSize(getPreferredSize()); 
frame.setResizable(false); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true);