Сурфейсы сами по себе хрупкие штуки (хотя кто знает, я сам с ними ещё не работал), стоит изменить разрешение экрана -- и он потерян. А других вариантов с заменой функции draw нет?
Также хочется спросить -- я хочу приделать призрака для time attack, например. Есть одна идея -- объект через каждый alarm записывает в ini координаты игрока и его кадр спрайта. А потом этот объект будет призраком, который из ini будет постепенно брать координаты и показывать кадр спрайта. А записывать и читать всё это будут аналогичные функции которые работают, перейдя на новую строчку файла.
Такой способ сработает?