5

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 を使用して正方形を正しく描画するにはどうすればよいですか?

4

3 に答える 3

5

SDL_FillRectSDL_Rectを引数として取りません。へのポインタを取りますSDL_Rect

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

そのため、白で塗りつぶすと関数に渡すことができNULLます。NULLはタイプSDL_Rectではありませんが、ポインターであるため、コンパイラーはそれで問題ありません。

于 2013-11-01T17:32:18.813 に答える