저는 기본적으로 C++의 초보자입니다.하지만 while 루프에있는 문자열을 업데이트하는 방법을 찾고 있었습니까?루프에서 텍스트를 업데이트하는 방법은 무엇입니까?
현재 루프의 모든 반복은 텍스트를 이전의 여전히 기본적으로 흰색의 흐림 효과 위에 씁니다.
while(!quit){
while(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT: quit = true; break;
case SDL_MOUSEMOTION: handle_mouse_position();
}
}
SDL_Rect offset;
offset.x = 400;
offset.y = 290;
std::stringstream s;
s << "Mouse xpos: " << mouseX << " Mouse ypos: " << mouseY;
font_surface = TTF_RenderText_Solid(font,s.str().c_str(),font_color);
SDL_BlitSurface(font_surface, NULL, screen, &offset);
//Update the screen
if(SDL_Flip(screen) == -1) {
return 1;
}
}
가 명확하게 마우스 위치를 표시 할 수 있도록 각 루프를 이전 텍스트 출력을 취소하고 업데이트하는 몇 가지 방법이 있나요 :
이 내 루프와 메신저 테스트이다?
어느 것이 더 효율적이며 어떻게 구문을 사용합니까? – Sir
두 번째 것이 더 효율적입니다. 그러나 복잡한 시나리오가 있다면 레이어로 작업하는 것이 좋습니다. 처음에는 맨 아래 레이어를 그리고 두번째 레이어를 렌더링합니다. –
나는 이것을 시도했습니다 :'font_color SDL_MapRGB (SDL_PixelFormat, 92,132,205); SDL_FillRect (font_surface, offset, font_color);'행복하지 않다 =/ – Sir