📜  sdl 绘制矩形 (1)

📅  最后修改于: 2023-12-03 15:34:53.698000             🧑  作者: Mango

使用SDL绘制矩形

SDL是一个跨平台的库,用于编写游戏和其他高性能应用程序。其中包含了许多功能,其中包括图形、音频、输入、网络等。在本文中,我们将介绍如何使用SDL库来在屏幕上绘制一个矩形。让我们开始吧!

步骤
第一步:初始化SDL

为了使用SDL,我们需要首先初始化SDL库。请查看以下代码片段:

#include <stdio.h>
#include <SDL2/SDL.h>

int main( int argc, char* args[] )
{
    SDL_Window* window = NULL;
    SDL_Surface* screenSurface = NULL;

    // Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    }
    else
    {
        // Create window
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN );
        if( window == NULL )
        {
            printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
        }
        else
        {
            // Get window surface
            screenSurface = SDL_GetWindowSurface( window );

            // Fill the surface white
            SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );

            // Update the surface
            SDL_UpdateWindowSurface( window );

            // Wait two seconds
            SDL_Delay( 2000 );
        }
    }

    // Destroy window
    SDL_DestroyWindow( window );

    // Quit SDL
    SDL_Quit();

    return 0;
}

当你执行这段代码的时候,它会创建一个名为“SDL Tutorial”的窗口,填充屏幕为白色,并持续2秒钟。现在我们可以像这样在屏幕上绘制一个矩形。

第二步:绘制矩形

绘制矩形需要使用SDL_RenderDrawRect函数。此函数接受一个SDL_Renderer类型的指针,一个SDL_Rect类型的指针和一个颜色值。请参考以下代码片段:

#include <stdio.h>
#include <SDL2/SDL.h>

int main( int argc, char* args[] )
{
    SDL_Window* window = NULL;
    SDL_Renderer* renderer = NULL;

    // Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    }
    else
    {
        // Create window
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN );
        if( window == NULL )
        {
            printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
        }
        else
        {
            // Get renderer
            renderer = SDL_CreateRenderer( window, -1, SDL_RENDERER_ACCELERATED );
            if( renderer == NULL )
            {
                printf( "Renderer could not be created! SDL Error: %s\n", SDL_GetError() );
            }
            else
            {
                // Set renderer color
                SDL_SetRenderDrawColor( renderer, 0xFF, 0xFF, 0xFF, 0xFF );

                // Clear the screen
                SDL_RenderClear( renderer );

                // Set rectangle attributes
                SDL_Rect rect = { 50, 50, 200, 100 };

                // Set rectangle color
                SDL_SetRenderDrawColor( renderer, 0xFF, 0x00, 0x00, 0xFF );

                // Draw rectangle
                SDL_RenderDrawRect( renderer, &rect );

                // Update the renderer
                SDL_RenderPresent( renderer );

                // Wait two seconds
                SDL_Delay( 2000 );
            }
        }
    }

    // Destroy renderer
    SDL_DestroyRenderer( renderer );

    // Destroy window
    SDL_DestroyWindow( window );

    // Quit SDL
    SDL_Quit();

    return 0;
}

当你运行上述代码时,它将在窗口的左上角绘制一个红色的矩形。我们可以在rect变量中设置要绘制的矩形的大小和位置。

结论

现在你知道如何使用SDL库在屏幕上绘制矩形了。在这篇文章中,我们介绍了如何初始化SDL库、创建窗口和绘制矩形。如果您想了解更多关于SDL库的信息,请查看SDL官方文档。