0

我想在按下空格键时绘制图像。这是我的代码:

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();
        }
    }

}

按空格键时未绘制图像。怎么了?

4

3 回答 3

2

翻转屏幕缓冲区 (SDL_Surfaces)。

于 2013-06-10T16:07:30.743 回答
1

在你的线路之后

SDL_BlitSurface(image, NULL, screen, &rect);

添加

SDL_UpdateRect(screen, 0, 0, 0, 0);
于 2013-06-10T16:38:08.073 回答
-1

该函数是否在主循环中绘制而没有按空格的东西?

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

}
于 2013-06-10T16:27:04.277 回答