Проблемы с Java-методом Paint, смешная скорость обновления

Я разрабатываю очень простую версию R-Type для работы в университете, но, несмотря на это, скорость ремесла очень медленная, поэтому движение уродливое и неуклюжее. Я использую метод перекрасить для обновления экрана, есть другие методы или способы лучше, чем это?

Видео Движения

Метод рисования на главной панели

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

    }

Метод краски Пи Джей

public void paint(Graphics2D g) {

    g.drawImage(imagen,x,y,this);
}

Метод перемещения ПиДжея

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

}

Ответы на вопрос(3)

Ваш ответ на вопрос