如何验证鼠标是否在 SDL Surface 上单击?

How to verify if mouse is clicked over a SDL Surface?

如何验证鼠标是否在 gimage_1 区域坐标上单击?

gScreenSurface是绘制gimage_1的主表面

基本上我不知道如何获取 gimage_1 坐标并用鼠标单击位置进行验证。

伪代码:

    SDL_Window* gWindow = NULL;  
    SDL_Surface* gScreenSurface = NULL;
    SDL_Surface *gimage_1 = NULL;
    SDL_Event e;

     while( SDL_PollEvent( &e ) != 0 )
     {
            switch (e.type) {
                case SDL_MOUSEBUTTONDOWN:
                    int x, y;
                    SDL_GetMouseState( &x, &y);
     }
     SDL_BlitSurface( gimage_1, NULL, gScreenSurface, NULL );
     SDL_UpdateWindowSurface( gWindow );

SDL_Surface 对象是没有位置或区域的图像。当您通过 SDL_Rect 将它们渲染到屏幕上时,您就给了它们一个位置。在您的示例中,gimage_1 没有任何坐标。您在渲染时使用的 SDL_Rect