C++ 在函数中绘制图像
我希望在按下空格键时绘制图像。这是我的代码:C++ 在函数中绘制图像,c++,sdl,sdl-1.2,C++,Sdl,Sdl 1.2,我希望在按下空格键时绘制图像。这是我的代码: void drawImage() { rect.x = 100; rect.y = 100; SDL_Surface *image = IMG_Load("image.png"); SDL_BlitSurface(image, NULL, screen, &rect); } 这就是它的名字: while (SDL_PollEvent(&event)) { if (event.type == SDL_
void drawImage()
{
rect.x = 100;
rect.y = 100;
SDL_Surface *image = IMG_Load("image.png");
SDL_BlitSurface(image, NULL, screen, &rect);
}
这就是它的名字:
while (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
gameRunning = false;
}
if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_SPACE)
{
drawImage();
}
}
}
当我按空格键时,图像没有绘制。怎么了?屏幕缓冲区(SDL_曲面)。函数是否在主循环中绘制,而不使用空格键
bool draw = false;
while (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
gameRunning = false;
}
if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_SPACE)
{
draw = true;
}
}
}
int main()
{
if(draw){
drawImage();
}
//DO SOME ERROR CHECKING
}
排队后
SDL_BlitSurface(image, NULL, screen, &rect);
加
也许你错过了翻页surfaces@Photon哎呀,就是这样。但当我按下空格键时,图像会出现,但当我释放空格键时,图像会消失。那么我该如何解决这个问题呢?@WilhelmMichaelsen:SDL是即时绘制,而不是保留的场景图。如果希望图像在未来的帧中显示,则必须在未来的帧中再次渲染(保存在内存中,不要每次都访问该文件)。他的代码没有填充/清除屏幕功能,因此情况并非如此。
SDL_UpdateRect(screen, 0, 0, 0, 0);