2013-07-30 14 views
5

Sto sviluppando il mio motore di gioco chiamato FGame e sto riscontrando questo errore grafico che mi infastidisce davvero e non sono sicuro di dove si trovi il problema. Per la grafica, sto usando una classe Image personalizzata che ha una matrice di 2d di pixel per archiviare i suoi dati. Ho anche una classe di schermate, che estende la classe Image, e i dati dei pixel dello schermo vengono utilizzati per disegnare su JFrame attraverso la classe java BufferedImage.Errore del motore di rendering pixel personalizzato Java

Se sto disegnando un'immagine e la sposto sullo schermo, c'è un bug grafico che distorce i pixel in una linea verticale in determinati punti sullo schermo.

Ecco un video che mostra il bug che sto tentando di descrivere: http://www.youtube.com/watch?v=MnGCuHW5neI e qui c'è un collegamento al codice sorgente: https://github.com/Frechetta/FGame.

+0

+1 per buone fonti per le indagini –

+0

Cosa intendi distorce? – arynaq

+0

Mentre un'immagine si sposta orizzontalmente, i pixel dell'immagine che attraversano determinati punti sull'asse x vengono spostati verso l'alto o verso il basso di un pixel, quindi nuovamente indietro una volta che si trovano sull'altro lato di quel punto. –

risposta

1

Grazie a @arynaq e @Max per avermi aiutato con il mio problema. Pubblicherò il mio vecchio codice e il nuovo codice per chiunque altro incontri questo problema.

vecchio Codice:

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); 

Nuovo codice:

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); 
Problemi correlati