我試圖在C中使用SDL_ttf在每次刷新頁面時顯示比分。代碼如下:TTF_OpenFont在第N次嘗試時失敗
SDL_Surface *score = NULL;
TTF_Font *font;
SDL_Color color = { 255, 255, 255 };
font = TTF_OpenFont("/home/sophie/Bureau/snake/data/ubuntu.ttf", 28);
if (font == NULL) {
printf("%s\n", TTF_GetError());
}
score = TTF_RenderText_Solid(font, "score to display", color);
SDL_BlitSurface(score, NULL, screen, NULL);
SDL_Flip(screen);
當我啓動遊戲,一切工作正常,但經過一段時間的遊戲崩潰,我得到以下錯誤:
Couldn't open /home/sophie/Bureau/snake/data/ubuntu.ttf
libgcc_s.so.1 must be installed for pthread_cancel to work
Abandon (core dumped)
我嘗試了不同的字體,但我仍然有這個問題。 然後,我在遊戲的主循環中使用了一個計數器,發現遊戲在第1008次後總是崩潰,無論我希望它的工作速度如何(在蛇中,當你得分時,一切都會更快)。
我不知道問題來自何處,也不知道錯誤消息的含義。
請告訴我,如果您有任何想法,或者如果我的問題制定得不好。我看了幾個論壇,沒有發現與我的案例相對應的內容,我現在可以使用任何幫助!
在此先感謝
從你的描述中,我得到了你在做主遊戲循環中的'TTF_OpenFont'的印象。那是對的嗎? – usr2564301
不,實際上,此段位於由主循環中的另一個函數調用的函數內。我認爲這將是太複雜,不能給真正的代碼,因爲錯誤信息表明錯誤在這裏......我錯了嗎? – Zeenoth