2
0
Эх сурвалжийг харах

Fix documentation on how to get the keycode string from a `physical_keycode`

Fixes #82091.

Co-authored-by: Yuri Sizov <[email protected]>
Co-authored-by: Rémi Verschelde <[email protected]>
jitspoe 1 жил өмнө
parent
commit
1e01fcd038

+ 19 - 1
doc/classes/InputEventKey.xml

@@ -79,7 +79,25 @@
 		</member>
 		<member name="physical_keycode" type="int" setter="set_physical_keycode" getter="get_physical_keycode" enum="Key" default="0">
 			Represents the physical location of a key on the 101/102-key US QWERTY keyboard, which corresponds to one of the [enum Key] constants.
-			To get a human-readable representation of the [InputEventKey], use [code]OS.get_keycode_string(event.keycode)[/code] where [code]event[/code] is the [InputEventKey].
+			To get a human-readable representation of the [InputEventKey], use [method OS.get_keycode_string] in combination with [method DisplayServer.keyboard_get_keycode_from_physical]:
+			[codeblocks]
+			[gdscript]
+			func _input(event):
+			    if event is InputEventKey:
+			        var keycode = DisplayServer.keyboard_get_keycode_from_physical(event.physical_keycode)
+			        print(OS.get_keycode_string(keycode))
+			[/gdscript]
+			[csharp]
+			public override void _Input(InputEvent @event)
+			{
+			    if (@event is InputEventKey inputEventKey)
+			    {
+			        var keycode = DisplayServer.KeyboardGetKeycodeFromPhysical(inputEventKey.PhysicalKeycode);
+			        GD.Print(OS.GetKeycodeString(keycode));
+			    }
+			}
+			[/csharp]
+			[/codeblocks]
 		</member>
 		<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false">
 			If [code]true[/code], the key's state is pressed. If [code]false[/code], the key's state is released.