目次 - SDL 3.0 API(機能別) - マウス

概要

あらゆるGUIアプリケーションはマウスを扱う必要があり, SDLはマウス入力とカーソル表示を行う関数を提供している.

ほとんどのマウスとの相互作用は, イベントサブシステムを通して伝えられる. マウスを動かすとSDL_EVENT_MOUSE_MOTIONイベントが, ボタンを押すとSDL_EVENT_MOUSE_BUTTON_DOWNイベントが発生するなどである. しかし, マウスの状態はいつでもSDL_GetMouseState()で得ることもできる.

一部のゲームでは, マウス入力とマウスカーソルを関連付けないことが望ましい. 例えばFPSでは, マウスがウィンドウの枠の外に移動してプレイヤーの動きを止めたくない. この場合SDL_SetWindowRelativeMouseMode()を使うと, カーソルを隠し, マウス入力するウィンドウにグラブし, マウスがどれだけ動いてもマウス入力を読み取らせることができる.

システムにマウスを追跡させたいが, 自分でマウスカーソルを描きたい場合, SDL_HideCursor()とSDL_ShowCursor()を使うことができる. 可能ならば, SDL_CreateColorCursor()で生成されたカスタムされた画像に対してSDL_SetCursor()を使用する, または単にSDL_CreateSystemCursor()でシステムカーソルを指定し, システムにカーソルを管理させる方がより効率がよいかもしれない.

ユニークな使用法やマルチプレイヤーゲームを可能にするために, 多くの環境でSDLは接続された複数個のマウスを区別して認識できる. SDL_GetMice()で一覧を得ることができ, SDLはマウスの接続と切断があったときSDL_EVENT_MOUSE_ADDEDイベントとSDL_EVENT_MOUSE_REMOVEDイベントを発生させる.

多くのアプリケーションは基本的なマウス入力のみを扱うため, SDLはタッチスクリーンやペン入力を仮想マウスデバイスとして提供する. そのため, デスクトップアプリケーションをコードの大きな変更なしでタッチスクリーンのスマートフォンで動作させられるかもしれない. アプリケーションがマウス入力とタッチ/ペン入力を分けて扱いたい場合は, イベントをSDL_TOUCH_MOUSEID/SDL_PEN_MOUSEIDのwhichフィールドでフィルタして除外する必要がある.

関数

  1. SDL_CaptureMouse
  2. SDL_CreateColorCursor
  3. SDL_CreateCursor
  4. SDL_CreateSystemCursor
  5. SDL_CursorVisible
  6. SDL_DestroyCursor
  7. SDL_GetCursor
  8. SDL_GetDefaultCursor
  9. SDL_GetGlobalMouseState
  10. SDL_GetMice
  11. SDL_GetMouseFocus
  12. SDL_GetMouseNameForID
  13. SDL_GetMouseState
  14. SDL_GetRelativeMouseState
  15. SDL_GetWindowMouseGrab
  16. SDL_GetWindowMouseRect
  17. SDL_GetWindowRelativeMouseMode
  18. SDL_HasMouse
  19. SDL_HideCursor
  20. SDL_SetCursor
  21. SDL_SetRelativeMouseTransform
  22. SDL_SetWindowMouseGrab
  23. SDL_SetWindowMouseRect
  24. SDL_SetWindowRelativeMouseMode
  25. SDL_ShowCursor
  26. SDL_WarpMouseGlobal
  27. SDL_WarpMouseInWindow

  1. SDL_Cursor
  2. SDL_MouseButtonFlags
  3. SDL_MouseID
  4. SDL_MouseMotionTransformCallback

列挙体

  1. SDL_MouseWheelDirection
  2. SDL_SystemCursor

マクロ

  1. SDL_TOUCH_MOUSEID

SDL Wikiへのリンク

SDL3/CategoryMouse - SDL Wiki