Я разрабатываю очень простую версию R-Type как работу для университета, но, несмотря на это, скорость корабля очень медленная, поэтому движение уродливое и неуклюжий. Я использую метод repaint для обновления экрана, есть другие методы или способы лучше, чем это?Проблемы с методом рисования Java, смешной скоростью обновления
метод Paint на главной панели
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawImage(fondo, 0, 0,1200,600,this);
pj.paint(g2);
g2D=g2;
}
метод краски PJ в
public void paint(Graphics2D g) {
g.drawImage(imagen,x,y,this);
}
метод шаг PJ в
public void move (KeyEvent e) {
int dx = 0; int dy = 0;
int code = e.getKeyCode();
switch (code) {
case KeyEvent.VK_Q: dy-=1; break;
case KeyEvent.VK_A: dy+=1; break;
case KeyEvent.VK_P: dx+=1; break;
case KeyEvent.VK_O: dx-=1; break;
}
int x = (getX()<maxX&&getX()!=0) ? getX()+dx : getX();
int y = (getY()<maxY&&getY()!=0) ? getY()+dy : getY();
if (getY()>=maxY||getY()==0) {
if (dy==+1) y=y+1;
}
setPosicion(x, y);
}
попытка бенчмаркинга каждый шаг в методе краски на главной панели, чтобы увидеть, какая часть является самым медленным и вернитесь с результатом – Stephan