📅  最后修改于: 2023-12-03 15:34:53.698000             🧑  作者: Mango
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官方文档。