디플레이를 새로 고칠 때마다 점수를 표시하기 위해 SDL_ttf를 사용하여 C 언어로 게임을 만들려고합니다. 같은 코드는 같습니다 : 나는 게임을 시작하면 모든 것이 제대로 작동하지만N 번째 시도에서 TTF_OpenFont가 실패합니다.
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)
을 이 문제가 있습니다. 그런 다음 나는 게임의 메인 루프에서 카운터를 사용하고 게임에 관계없이 항상 내가에서 일하기를 원하는 속도의 1,008번째 시간 이후에 충돌 (당신이 점수를 때 뱀에 모든 것이 빠르게 이동) 것을 발견했다.
어디에서 문제가 발생하는지 알 수없고 정확하게 오류 메시지의 의미도 없습니다.
아이디어가 있거나 제 질문이 제대로 작성되지 않은 경우 알려주십시오. 여러 포럼을 살펴본 결과 내 사례에 해당하는 내용이 전혀 발견되지 않았으므로 지금 어떤 도움도 사용할 수 있습니다! 사전
반복적으로이 기능을 통해 갈 때마다 글꼴을 여는 것처럼 보이는
설명에서, 나는 당신이 메인 게임 루프 안에서'TTF_OpenFont'을하고 있다는 인상을받습니다. 그 맞습니까? – usr2564301
아니요, 실제로이 세그먼트는 기본 루프에있는 다른 함수에 의해 호출되는 함수 안에 있습니다. 오류 메시지가 오류가 여기에 있음을 알리기 때문에 실제 코드를 제공하는 것이 너무 복잡 할 것이라고 생각했습니다. 내가 잘못 했습니까? – Zeenoth