。定義sdl_rectとsdl_mousebuttondown
私はGetMouseState(x,y)
を使用してマウスクリックイベントを取得しました。これは、マウスボタンがクリックされた場所で動作します。しかし、むしろ私はマウスxとyを取得し、sdl rect xとyをチェックして、その長方形がクリックされているかどうかを確認する必要があります。
。定義sdl_rectとsdl_mousebuttondown
私はGetMouseState(x,y)
を使用してマウスクリックイベントを取得しました。これは、マウスボタンがクリックされた場所で動作します。しかし、むしろ私はマウスxとyを取得し、sdl rect xとyをチェックして、その長方形がクリックされているかどうかを確認する必要があります。
あなたが望む矩形を含むSDL_Rect
構造体を作成するとします。マウスクリックの座標を取得すると、それを矩形座標と比較するのは非常に簡単です:
短いバージョンです。幅と高さの厳密な不等式の使用に注意してください。私はまた、2つの間隔の代わりに、2つのコーナーを視覚化することを好む。
int in_rect(int x, int y, struct SDL_Rect *r) {
return (x >= r->x) && (y >= r->y) &&
(x < r->x + r->w) && (y < r->y + r->h);
}
tatは探していたものです...ありがとう – user1234975
yの場合はx < (rect-> x + rect-> w)と同じである必要があります。 – Alink
@Alinkああ、ありがとう。更新された答え。 –