no , realmente siempre se ira borrando el fondo,
cada vez que cambies las cosas de posicion debes redibujar todo.
Debes usar el ciclo básico el videojuego, lo cual para extenderlo a tus necesidades seria:
while (juega)
{
CapturarDispositivoEntrada()
ProcesarPosiciones();
Dibujar();
}
...
...
Dibujar()
{
DibujarFondo();
DibujarPersonajes();
}