我在我的 SDL 游戏上实现了一个自定义光标。在屏幕上移动它时,我可以向右和底部移动到任意位置。但光标不会超出 ledt 或顶墙。我正在使用SDL_GetMouseState
并将电流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);
}