私は
timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor );
applySurface(500, 30, timer, screen);
また、「画面」の表面には、キャラクターと壁も適用しました。しかし、何らかの理由で、「floorsurface」と「charsurface」をすでにNULLにしない限り、タイマーが表示されないようです。私は何か間違ったことをしていますか?
SDL_Flip(screen) の前に timerUpdate() を置いてみてください。SDL_Flip を呼び出してから、timerUpdate() を呼び出します。それで、OK、それでいい、次に画面をひっくり返したときに、テキストが表示されると思います。しかし、何が起こっているのかというと、画面が再び反転する前に、より多くのサーフェスを上にブリットしているということです。テキストの上にサーフェスをブリットしたため、テキストが表示されません。順番を入れ替えるだけなので、
timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round
動作するはずです。