0
我在SDL遊戲上實現了自定義光標。當它在屏幕上移動時,我可以儘可能遠離右邊和底部。但光標不會超出指示燈或頂部牆。我正在使用SDL_GetMouseState
並將當前的x
和y
值傳遞給它。SDL - 使用矩形x和y小於零的光標
如何管理,使表面移動到的位置(-5, 0)
?
下面是一些代碼:
typedef struct {
SDL_Surface *image;
SDL_Rect frame;
} Cursor;
void moveCursor(Cursor *cursor) {
Sint16 *x = &cursor->frame.x;
Sint16 *y = &cursor->frame.y;
Uint16 cursorWidth = cursor->frame.w;
Uint16 cursorHeight = cursor->frame.h;
SDL_GetMouseState((int *)x, (int *)y);
cursor->frame.w = cursorWidth;
cursor->frame.h = cursorHeight;
SDL_Rect temporaryFrame = cursor->frame;
SDL_BlitSurface(cursor->image, NULL, bufferSurface.surface, &temporaryFrame);
}
你的問題是? – 2013-07-09 12:49:56
對不起,我在創建帖子時沒有將最後一行復制到編輯器。 –
只需用視頻表面的負偏移量對其進行blit處理即可。 – 2013-07-09 15:24:48