InputEventMouseButton
Событие кнопки мыши или шага колеса.
Проверяйте ButtonIndex и тип перехода: нажатие, отпускание или отмена. DoubleClick — отдельный маркер; он не заменяет проверку Pressed. Программное создание события не нажимает физическую кнопку.
Полный пример распознаёт двойное нажатие левой кнопки, исключая отпускание и отмену. Второй метод показывает отдельную фильтрацию устройства геймпада. Передавайте событие из своего обработчика ввода; статический helper не прикрепляется к Entity.
using Reckfell;
public static class ButtonEventExample
{
public static bool IsDoubleLeftPress(InputEvent inputEvent)
{
return inputEvent is InputEventMouseButton button
&& button.ButtonIndex == MouseButton.Left
&& button.Pressed && button.DoubleClick && !button.Canceled;
}
public static bool IsSelectedPadPress(InputEvent inputEvent, int device, JoyButton index)
{
return inputEvent is InputEventJoypadButton button
&& button.Device == device && button.ButtonIndex == index && button.Pressed;
}
}Для колеса используются направления MouseButton.WheelUp, WheelDown, WheelLeft и WheelRight. Factor хранит величину прокрутки, но не обещает одинаковых аппаратных единиц на всех устройствах.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
InputEventMouseButtonКонструктор
public InputEventMouseButton();Создаёт событие без отправки во ввод: ButtonIndex = MouseButton.None, Factor = 1, Pressed, DoubleClick и Canceled равны false. Position, GlobalPosition и ButtonMask унаследованы от InputEventMouse.
Свойства5
ButtonIndexСвойство
public MouseButton ButtonIndex { get; set; }Кнопка или направление колеса MouseButton для этого события. Это один индекс, а не битовая маска одновременно удерживаемых кнопок: для неё используется ButtonMask.
CanceledСвойство
public bool Canceled { get; set; }Флаг отмены. При true IsPressed() и IsReleased() возвращают false. Сеттер не стирает сохранённый признак нажатия: снятие Canceled может снова сделать Pressed равным true.
DoubleClickСвойство
public bool DoubleClick { get; set; }Маркер двойного щелчка в этом событии. Не вычисляет интервал между событиями и сам по себе не означает нажатие: проверяйте также Pressed, ButtonIndex и Canceled.
FactorСвойство
public float Factor { get; set; }Величина прокрутки для события колеса; обычно 1 для обычного шага. Сеттер хранит число без ограничения 0..1; 2.5 остаётся 2.5. Единицы и точность данных зависят от платформы и устройства. Factor не меняет ButtonIndex и не является силой GetActionStrength.
PressedСвойство
public bool Pressed { get; set; }Состояние нажатия события. Getter учитывает Canceled: при отмене возвращает false, даже если ранее было задано true. Не считайте !Pressed достаточной проверкой обычного отпускания; сначала проверьте Canceled.
Методы8
GetButtonIndexMouseButton
public MouseButton GetButtonIndex();Возвращает ButtonIndex без отправки события и без нового опроса мыши.
MouseButtonИндекс кнопки или направления колеса MouseButton.
GetFactorfloat
public float GetFactor();Возвращает Factor без отправки события и без нового опроса мыши.
floatСохранённая величина Factor.
IsDoubleClickbool
public bool IsDoubleClick();Возвращает DoubleClick без отправки события и без нового опроса мыши.
boolМаркер DoubleClick, независимый от проверки нажатия.
SetButtonIndexvoid
public void SetButtonIndex(MouseButton buttonIndex);Устанавливает ButtonIndex по правилам свойства. Меняет только данные события, не состояние устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
buttonIndex | MouseButton | — |
buttonIndexНовое значение ButtonIndex; ограничения описаны у свойства.
SetCanceledvoid
public void SetCanceled(bool canceled);Устанавливает Canceled по правилам свойства. Меняет только данные события, не состояние устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
canceled | bool | — |
canceledНовое значение Canceled; ограничения описаны у свойства.
SetDoubleClickvoid
public void SetDoubleClick(bool doubleClick);Устанавливает DoubleClick по правилам свойства. Меняет только данные события, не состояние устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
doubleClick | bool | — |
doubleClickНовое значение DoubleClick; ограничения описаны у свойства.
SetFactorvoid
public void SetFactor(float factor);Устанавливает Factor по правилам свойства. Меняет только данные события, не состояние устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
factor | float | — |
factorНовое значение Factor; ограничения описаны у свойства.
SetPressedvoid
public void SetPressed(bool pressed);Устанавливает Pressed по правилам свойства. Меняет только данные события, не состояние устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
pressed | bool | — |
pressedНовое значение Pressed; ограничения описаны у свойства.