Cómo quitar la última imagen en una animación

Lo que estoy tratando de hacer es crear una animación que cree un movimiento 'en ejecución'. Cada vez que lo dibujo en la pantalla, el último cuadro de la animación se queda atrás (por lo que queda un rastro de cuadros de animación cuando se mueve el sprite). He intentado las declaraciones if y cambiar la posición de dibujo de la imagen cuando cambia el marco:

if(a2.sceneNum() == 0)
spectre_Draw1 = (screenWidth() / 2 - 120 / 2 + 120 - 6);
else
spectre_Draw1 = 0;

g.drawImage(pic[2], spectre_Draw1, (screenHeight() / 2 - 180 / 2), null);

if(a2.sceneNum() == 1)
spectre_Draw2 = (screenWidth() / 2 - 120 / 2 + 120 - 6);
else
spectre_Draw2 = 0;

g.drawImage(pic[3], spectre_Draw2, (screenHeight() / 2 - 180 / 2), null);

if(a2.sceneNum() == 2)
spectre_Draw3 = (screenWidth() / 2 - 120 / 2 + 120 - 6);
else
spectre_Draw3 = 0;

g.drawImage(pic[4], spectre_Draw3, (screenHeight() / 2 - 180 / 2), null);

¿Hay alguna manera de hacer esto mientras se eliminan las imágenes finales?

Respuestas a la pregunta(2)

Su respuesta a la pregunta