输入

继承: Object

继承人: InputDefault

类别: 核心

简要说明

处理输入的单例。

方法

无效

action_press ( String action, float strength=1.0 )

无效

action_release ( String action )

无效

add_joy_mapping ( String mapping, bool update_existing=false )

Vector3

get_accelerometer ( ) const

float

get_action_strength ( String action ) const

Array

get_connected_joypads ( )

CursorShape

get_current_cursor_shape ( ) const

Vector3

get_gravity ( ) const

Vector3

get_gyroscope ( ) const

float

get_joy_axis ( int device, int axis ) const

int

get_joy_axis_index_from_string ( String axis )

String

get_joy_axis_string ( int axis_index )

int

get_joy_button_index_from_string ( String button )

String

get_joy_button_string ( int button_index )

String

get_joy_guid ( int device ) const

String

get_joy_name ( int device )

float

get_joy_vibration_duration ( int device )

Vector2

get_joy_vibration_strength ( int device )

Vector2

get_last_mouse_speed ( ) const

Vector3

get_magnetometer ( ) const

int

get_mouse_button_mask ( ) const

MouseMode

get_mouse_mode ( ) const

bool

is_action_just_pressed ( String action ) const

bool

is_action_just_released ( String action ) const

bool

is_action_pressed ( String action ) const

bool

is_joy_button_pressed ( int device, int button ) const

bool

is_joy_known ( int device )

bool

is_key_pressed ( int scancode ) const

bool

is_mouse_button_pressed ( int button ) const

无效

joy_connection_changed ( int device, bool connected, String name, String guid )

无效

parse_input_event ( InputEvent event )

无效

remove_joy_mapping ( String guid )

无效

set_custom_mouse_cursor ( Resource image, CursorShape shape=0, Vector2 hotspot=Vector2( 0, 0 ) )

无效

set_default_cursor_shape ( CursorShape shape=0 )

无效

set_mouse_mode ( MouseMode mode )

无效

set_use_accumulated_input ( bool enable )

无效

start_joy_vibration ( int device, float weak_magnitude, float strong_magnitude, float duration=0 )

无效

stop_joy_vibration ( int device )

无效

warp_mouse_position ( Vector2 to )

信号

  • joy_connection_changed ( int device, bool connected )

在连接或断开操纵手柄设备时发出。

枚举

枚举 MouseMode

  • MOUSE_MODE_VISIBLE = 0 ---使鼠标光标在隐藏时可见。

  • MOUSE_MODE_HIDDEN = 1 ---如果鼠标光标可见,则将其隐藏。

  • MOUSE_MODE_CAPTURED = 2 ---捕获鼠标。鼠标将被隐藏,无法离开游戏窗口,但它仍将注册移动和鼠标按钮按下。在Windows和Linux上,鼠标将使用原始输入模式,这意味着报告的移动将不受操作系统鼠标加速设置的影响。

  • MOUSE_MODE_CONFINED = 3 ---使鼠标光标可见,但将其限制在游戏窗口中。

枚举 CursorShape

  • CURSOR_ARROW = 0 ---箭头光标。标准,默认指针。

  • CURSOR_IBEAM = 1 ---工字梁光标。通常用于显示单击鼠标时文本光标将出现的位置。

  • CURSOR_POINTING_HAND = 2 ---指针光标。通常用于指示指针位于链接或其他可交互项上。

  • CURSOR_CROSS = 3 ---交叉光标。通常出现在可以执行绘图操作或进行选择的区域上。

  • CURSOR_WAIT = 4 ---等待光标。指示应用程序正忙于执行操作。此光标形状表示应用程序在操作期间仍然可用。

  • CURSOR_BUSY = 5 ---忙光标。指示应用程序正忙于执行操作。此光标形状表示应用程序在操作期间不可用(例如,有东西阻塞了其主线程)。

  • CURSOR_DRAG = 6 ---拖动光标。通常在拖动时显示。

  • CURSOR_CAN_DROP = 7 ---可以放下光标。通常在拖动某物时显示,表示可以将其放在当前位置。

  • CURSOR_FORBIDDEN = 8 ---禁止使用光标。指示当前操作被禁止(例如,拖动某个对象时)或某个位置的控件被禁用。

  • CURSOR_VSIZE = 9 ---垂直调整鼠标光标的大小。双头垂直箭头。它告诉用户可以垂直调整窗口或面板的大小。

  • CURSOR_HSIZE = 10 ---水平调整鼠标光标的大小。双头水平箭头。它告诉用户可以水平调整窗口或面板的大小。

  • CURSOR_BDIAGSIZE = 11 ---窗口调整鼠标光标的大小。光标是一个从左下到右上的双头箭头。它告诉用户可以水平和垂直调整窗口或面板的大小。

  • CURSOR_FDIAGSIZE = 12 ---窗口调整鼠标光标的大小。光标是一个从左上到右下的双头箭头,与 CURSOR_BDIAGSIZE . 它告诉用户可以水平和垂直调整窗口或面板的大小。

  • CURSOR_MOVE = 13 ---移动光标。表示可以移动某些内容。

  • CURSOR_VSPLIT = 14 ---垂直拆分鼠标光标。在窗户上,它和 CURSOR_VSIZE .

  • CURSOR_HSPLIT = 15 ---水平拆分鼠标光标。在窗户上,它和 CURSOR_HSIZE .

  • CURSOR_HELP = 16 ---帮助光标。通常是问号。

描述

处理输入的单例。这包括按键、鼠标按钮和移动、操纵手柄和输入动作。操作及其事件可以在 输入映射 表中的 Project > Project Settings ,或与 InputMap 班级。

教程

方法说明

  • void action_press ( String action, float strength=1.0 )

这将模拟按下指定的操作。

强度可用于非布尔操作,范围在0到1之间,表示给定操作的强度。

  • void action_release ( String action )

如果已按下指定的操作,将释放它。

  • void add_joy_mapping ( String mapping, bool update_existing=false )

向映射数据库中添加新的映射项(SDL2格式)。可选更新已连接的设备。

  • Vector3 get_accelerometer ( ) const

如果设备有加速度计,这将返回加速度。否则,它返回一个空的 Vector3 .

注意:此方法返回空 Vector3 从编辑器运行时,即使您的设备有加速度计。必须将项目导出到支持的设备,才能从加速度计中读取值。

返回一个介于0和1之间的值,该值表示给定操作的强度。例如,在操纵手柄中,离轴越远(模拟杆或L2、R2触发器)距离死区越远,值越接近1。如果操作映射到没有轴作为键盘的控件,则返回的值将为0或1。

  • Array get_connected_joypads ( )

返回一个 Array 包含所有当前连接的操纵手柄的设备ID。

如果设备有一个加速度计,这将返回重力。否则,它返回一个空的 Vector3 .

如果设备有陀螺仪,这将返回设备X、Y和Z轴的旋转速率(rad/s)。否则,它返回一个空的 Vector3 .

返回给定索引处的操纵手柄轴的当前值(请参见 JoystickList

  • int get_joy_axis_index_from_string ( String axis )

返回所提供轴名称的索引。

  • String get_joy_axis_string ( int axis_index )

接收 JoystickList 并将其等效名称作为字符串返回。

  • int get_joy_button_index_from_string ( String button )

返回所提供按钮名称的索引。

  • String get_joy_button_string ( int button_index )

从接收游戏板按钮 JoystickList 并以字符串形式返回其等效名称。

在使用游戏板重新映射的平台上返回与SDL2兼容的设备GUID。退换商品 "Default Gamepad" 否则。

返回指定设备索引处的操纵台名称。

  • float get_joy_vibration_duration ( int device )

返回当前振动效果的持续时间(秒)。

  • Vector2 get_joy_vibration_strength ( int device )

返回操纵手柄振动的强度:x是弱电机的强度,y是强电机的强度。

  • Vector2 get_last_mouse_speed ( ) const

返回上次移动光标时的鼠标速度,直到鼠标移动的下一帧。这意味着即使鼠标不移动,此函数仍将返回上一个运动的值。

  • Vector3 get_magnetometer ( ) const

如果设备有一个磁强计,这将返回所有轴的磁场强度(微特斯拉)。

  • int get_mouse_button_mask ( ) const

将鼠标按钮作为位掩码返回。如果同时按下多个鼠标按钮,则将位相加。

返回鼠标模式。有关详细信息,请参阅常量。

  • bool is_action_just_pressed ( String action ) const

返回 true 当用户开始按下动作事件时,这意味着 true 仅在用户按下按钮的框架上。

这对于只需在按下操作时运行一次的代码非常有用,而不是在按下操作时运行每一帧。

  • bool is_action_just_released ( String action ) const

返回 true 当用户停止按操作事件时,这意味着 true 仅在用户释放按钮的框架上。

返回 true 如果你按下动作事件。

  • bool is_joy_button_pressed ( int device, int button ) const

返回 true 如果您按下了操纵手柄按钮(请参见 JoystickList

返回 true 如果系统知道指定的设备。这意味着它将所有按钮和轴索引完全设置为 JoystickList . 未知的操纵手柄不应该与这些常量匹配,但您仍然可以从中检索事件。

  • bool is_key_pressed ( int scancode ) const

返回 true 如果你在按键。你可以通过 KeyList 常数。

  • bool is_mouse_button_pressed ( int button ) const

返回 true 如果按指定的鼠标按钮 ButtonList .

提供 InputEvent 参加比赛。可用于从代码中人工触发输入事件。

  • void remove_joy_mapping ( String guid )

从内部数据库中删除与给定guid匹配的所有映射。

设置自定义鼠标光标图像,该图像仅在游戏窗口中可见。还可以指定热点。经过 null 图像参数重置为系统光标。请参见枚举 CURSOR_* 用于形状列表。

image 的大小必须小于256×256。

hotspot 必须在 image 的大小。

  • void set_default_cursor_shape ( CursorShape shape=0 )

设置要在视区中使用的默认光标形状,而不是 CURSOR_ARROW .

注: 如果要更改的默认光标形状 Control 的节点,使用 Control.mouse_default_cursor_shape 相反。

注: 此方法生成 InputEventMouseMotion 立即更新光标。

设置鼠标模式。有关详细信息,请参阅常量。

  • void set_use_accumulated_input ( bool enable )

是否累计操作系统发送的类似输入事件。默认启用。

  • void start_joy_vibration ( int device, float weak_magnitude, float strong_magnitude, float duration=0 )

开始振动操纵手柄。操纵手柄通常有两个隆隆的马达,一个是强弱马达。 weak_magnitude 是弱电机的强度(介于0和1之间)和 strong_magnitude 是强力马达的强度(介于0和1之间)。 duration 是以秒为单位的效果持续时间(持续时间为0将尝试无限期地播放振动)。

注: 不是每个硬件都能兼容长时间的效果;如果必须播放几秒钟以上,建议重新启动效果。

  • void stop_joy_vibration ( int device )

停止操纵手柄的振动。

  • void warp_mouse_position ( Vector2 to )

将鼠标位置设置为指定的向量。