Skip to content

MyLib.MouseStatus ​

入力関連(マウス) / マウスクリック情報の管理

所属:mylibのAPI解説 · 全モジュール索引

読み方 ​

このページは実ファイルから生成したソース照合用資料です。公開関数の引数・戻り値の型、オーバーロード、列挙値を確認できます。public/protected/privateを区別し、privateメンバーを呼び出し例に使わないでください。コメントは原文であり、古い説明や誤記を含む場合があります。利用条件・訂正は上記のAPI解説と既知の制約を優先してください。

元ファイル:ProjectName/include/MyLib/MouseStatus/MouseStatus.ixx。確認基準:08f9fa53。

インターフェースとインライン実装 ​

cpp
export module MyLib.MouseStatus;

import <unordered_map>;
import MyLib.Math.Vector2;

export constexpr int8_t CLICK_ON_RELEASE = 0x0001;   // 未入力時
export constexpr int8_t CLICK_RELEASING  = 0x0002;   // 未入力中
export constexpr int8_t CLICK_ON_PRESS   = 0x0004;   // 入力時
export constexpr int8_t CLICK_PRESSING   = 0x0008;   // 入力中

using namespace math;

/// <summary>
/// 入力関連(マウス)
/// </summary>
export namespace input
{
    /// <summary>
    /// マウスクリック情報の管理
    /// </summary>
    export class MouseStatus final
    {
    public:
        /// <summary>
        /// インスタンスを返す
        /// </summary>
        /// <returns>自身のインスタンス</returns>
        static MouseStatus& Instance()
        {
            static MouseStatus instance;
            return instance;
        }

        /// <summary>
        /// クリック情報更新
        /// </summary>
        static void UpdateMouseState();

        /// <summary>
        /// クリック情報判定
        /// </summary>
        /// <param name="button">対象ボタン(例: 左=0, 右=1 など)</param>
        /// <param name="state">対象ステータス</param>
        /// <returns>一致:true | 不一致:false</returns>
        static bool CheckClick(const int button, const int state)
        {
            return Instance().CheckClickImpl(button, state);
        }

        /// <summary>
        /// マウス座標取得
        /// </summary>
        /// <returns>マウス座標</returns>
        static const Vector2i& GetMousePos()
        {
            return Instance().mousePos;
        }

        /// <summary>
        /// デストラクタ
        /// </summary>
        ~MouseStatus() = default;

    private:
        /// <summary>
        /// コンストラクタ
        /// </summary>
        MouseStatus();

        // 実装用メソッド
        void UpdateClickStateImpl();
        bool CheckClickImpl(const int button, const int state)
        {
            //押下中判定結果を返す
            return (clickData[button] & state);
        }

        Vector2i mousePos;                          // マウス座標
        std::unordered_map<int, int> clickData;     // クリック情報
    };
}

コード確認基準:08f9fa53 · C++実機検証は別途実施