我想做一些简单的事情,例如使用C和SDL在屏幕上画一个正方形。我复制的示例不起作用。

//Get window surface
SDL_Surface *screenSurface = SDL_GetWindowSurface(window);

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

//create a square
SDL_FillRect(screenSurface, SDL_Rect(0,0,100,100), SDL_MapRGB(screenSurface->format, 0x00, 0x00, 0x00));

它可以正确地将屏幕填充为白色,但无法调用SDL_Rect:
error: expected expression before ‘SDL_Rect’

如何使用SDL 2.0正确绘制正方形?

最佳答案

SDL_FillRect不以SDL_Rect作为参数;它需要一个指向SDL_Rect的指针。

//Create a square
SDL_Rect rect(0,0,100,100);
SDL_FillRect(screenSurface, &rect, SDL_MapRGB(...))

这就是为什么当您用白色填充时,可以将NULL传递给该函数。 NULL的类型不是SDL_Rect,但是它是一个指针,因此编译器可以使用它。

10-08 05:38