MGL::Input::Keyboard#

概要#

MGL::Input::Keyboardはキーボード入力を取得するためのクラスです。

宣言#

namespace MGL::Input
{
    class Keyboard;
}

メンバ情報#

種類

名前

内容

関数

IsAvailable

キーボードが利用可能かを取得

関数

IsConnecting

キーボードの接続状態を取得

関数

IsPressing

キーの押下状態を取得

関数

IsTriggered

キーが押された瞬間を取得

関数

IsReleased

キーが離された瞬間を取得

関数

IsARepeat

キーのリピート入力を取得

関数

SetRepeatSetting

キーのリピート入力を設定

関数

GetRepeatSetting

現在のリピート入力設定を取得


IsAvailable#

キーボードが利用可能かを取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] bool IsAvailable() const noexcept;
    };
}

戻り値#

bool

利用可能な場合はtrue、利用不可能な場合はfalse

説明#

実行中の環境においてキーボードが利用可能かを取得します。

この関数はキーボードを認識可能な環境であれば接続状態に関わらずtrueを返します。ユーザーがキーボードを使える状態であるかを判別する場合はIsConnectingを利用してください。

標準構成におけるWindowsとmacOSでは、この関数は常にtrueを返します。iOS/iPadOSとtvOSでは、システムのバージョンが14.0以降かつ初期化時にキーボードを有効にしている場合にtrueを返します。

利用例#

MGL::Input::Keyboard keyboard;

if (keyboard.IsAvailable())
{
    MGL_TRACE("キーボード利用可能");
}
else
{
    MGL_TRACE("キーボード利用不可");
}

関連#


IsConnecting#

キーボードの接続状態を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] constexpr bool IsConnecting() const noexcept;
    };
}

戻り値#

bool

キーボードが接続されていればtrue、接続されていなければfalse

説明#

キーボードの接続状況を取得します。

キーボードを認識できない環境では常にfalseを返します。ユーザーがキーボードを使える状態であるかを判別する場合はIsAvailableよりもこちらを利用してください。

標準構成におけるWindowsとmacOSでは、この関数は常にtrueを返します。

利用例#

MGL::Input::Keyboard keyboard;

if (keyboard.IsConnecting())
{
    MGL_TRACE("キーボードが接続されている");
}
else
{
    MGL_TRACE("キーボードが接続されていない");
}

関連#


IsPressing#

キーの押下状態を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] bool IsPressing(Keycode keycode) const noexcept;
    };
}

引数#

MGL::Input::Keycode keycode

取得するキーを表す値

戻り値#

bool

押されていればtrue、押されていなければfalse

説明#

指定したキーの押下状態を取得します。この関数は押されている間は常にtrueを返します。

キーボードが認識できない、または接続されていない環境においては、この関数は常にfalseを返します。

利用例#

MGL::Input::Keyboard keyboard;

// Aキーの押下判定
if (keyboard.IsPressing(MGL::Input::Keycode::KeyA))
{
    MGL_TRACE("Aキーが押されている");
}

関連#


IsTriggered#

キーが押された瞬間を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] bool IsTriggered(Keycode keycode) const noexcept;
    };
}

引数#

MGL::Input::Keycode keycode

取得するキーを表す値

戻り値#

bool

押された瞬間であればtrue、それ以外はfalse

説明#

キーを認識した最初のフレームだけtrueを返します。具体的には、指定されたキーがそのフレームで入力されていて、前回のフレームでは入力されていない場合にtrueとなります。

キーボードが認識できない、または接続されていない環境においては、この関数は常にfalseを返します。

利用例#

MGL::Input::Keyboard keyboard;

// Aキーが押された瞬間を取得
if (keyboard.IsTriggered(MGL::Input::Keycode::KeyA))
{
    MGL_TRACE("Aキーが押された");
}

関連#


IsReleased#

キーが離された瞬間を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] bool IsReleased(Keycode keycode) const noexcept;
    };
}

引数#

MGL::Input::Keycode keycode

取得するキーを表す値

戻り値#

bool

離された瞬間であればtrue、それ以外はfalse

説明#

キーが離された最初のフレームだけtrueを返します。具体的には、指定されたキーがそのフレームで入力されておらず、前回のフレームでは入力されていた場合にtrueとなります。

キーボードが認識できない、または接続されていない環境においては、この関数は常にfalseを返します。

利用例#

MGL::Input::Keyboard keyboard;

// Aキーが離された瞬間を取得
if (keyboard.IsReleased(MGL::Input::Keycode::KeyA))
{
    MGL_TRACE("Aキーが離された");
}

関連#


IsARepeat#

キーのリピート入力を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] bool IsARepeat(Keycode keycode) const noexcept;
    };
}

引数#

MGL::Input::Keycode keycode

取得するキーを表す値

戻り値#

bool

指定されたキーが押されている間、設定されている間隔でtruefalseを繰り返す

説明#

指定されたキーのリピート入力を取得します。この関数がtrueを返す間隔はSetRepeatSettingで設定可能です。

リピート入力の詳しい挙動についてはリピート間隔の変更を参照してください。

キーボードが認識できない、または接続されていない環境においては、この関数は常にfalseを返します。

利用例#

MGL::Input::Keyboard keyboard;

// Aキーのリピート入力判定
if (keyboard.IsARepeat(MGL::Input::Keycode::KeyA))
{
    MGL_TRACE("Aキーを認識");
}

関連#


SetRepeatSetting#

キーのリピート入力を設定

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        constexpr void SetRepeatSetting(const RepeatSetting &repeatSetting) noexcept;
    };
}

引数#

MGL::Input::RepeatSetting repeatSetting

設定するリピート入力パラメータ

説明#

IsARepeattrueを返す間隔を設定します。

リピート入力の詳しい挙動についてはリピート間隔の変更を参照してください。

利用例#

MGL::Input::Keyboard keyboard;

// 設定するリピート入力パラメータを初期化
MGL::Input::RepeatSetting repeatSetting(
        MGL::Input::RepeatType::Second,     // 単位は秒
        1.0f,                               // 初回は1秒
        0.4f);                              // 2回目以降は 0.4秒間隔

// リピート入力パラメータを設定
keyboard.SetRepeatSetting(repeatSetting);

関連#


GetRepeatSetting#

現在のリピート入力設定を取得

宣言#

namespace MGL::Input
{
    class Keyboard
    {
    public:
        [[nodiscard]] constexpr const RepeatSetting &GetRepeatSetting() const noexcept;
    };
}

戻り値#

MGL::Input::RepeatSetting

現在設定されているリピート入力設定

説明#

キーボードで現在使用しているリピート入力の設定パラメータを取得します。

リピート入力の詳しい挙動についてはリピート間隔の変更を参照してください。

利用例#

MGL::Input::Keyboard keyboard;

// リピート入力パラメータを取得
auto repeatSetting = keyboard.GetRepeatSetting();

関連#