I am developing a very simple version of R-Type as a job for the university, but despite this, the shipโs speed is very slow, so the movement is ugly and clumsy. I use the repaint method to refresh the screen, are there other methods or better ways than it?
Motion video
Main panel drawing method
@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 painting method
public void paint(Graphics2D g) { g.drawImage(imagen,x,y,this); }
PJ move method
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); }
source share