MGL::Input::Keyboard
Contents
MGL::Input::Keyboard#
概要#
MGL::Input::Keyboardはキーボード入力を取得するためのクラスです。
宣言#
namespace MGL::Input
{
class Keyboard;
}
メンバ情報#
種類 |
名前 |
内容 |
---|---|---|
関数 |
キーボードが利用可能かを取得 |
|
関数 |
キーボードの接続状態を取得 |
|
関数 |
キーの押下状態を取得 |
|
関数 |
キーが押された瞬間を取得 |
|
関数 |
キーが離された瞬間を取得 |
|
関数 |
キーのリピート入力を取得 |
|
関数 |
キーのリピート入力を設定 |
|
関数 |
現在のリピート入力設定を取得 |
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
指定されたキーが押されている間、設定されている間隔で
true
とfalse
を繰り返す
説明#
指定されたキーのリピート入力を取得します。この関数が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
設定するリピート入力パラメータ
説明#
IsARepeatがtrue
を返す間隔を設定します。
リピート入力の詳しい挙動についてはリピート間隔の変更を参照してください。
利用例#
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();