Benutzer-Werkzeuge

Webseiten-Werkzeuge


godot:syntax:action

Aktionen

Über Menü(Projekt) ⇒ Menüpunkt(Projekteinstellung) ⇒ Reiter(Eingabe Zuordnung) sind folgende Ereignisse definiert.

ui_accept [Return]
ui_select [Space]
ui_cancel [ESC] Beendet die Godotanwendung
ui_focus_next [TAB]
ui_focus_prev [Shift] + [TAB]
ui_left [Cursortaste links]
ui_right [Cursortaste rechts]
ui_up [Cursortaste hoch]
ui_down [Cursortaste runter]
ui_page_up [Bild hoch]
ui_page_down [Bild runter]
ui_home [Pos 1]
ui_end [Ende]

Die jeweiligen Zuweisungen können wir erweitertern oder abändern. Das folgende Skript zeigt auf, wie wir die Aktion überwachen und darauf reagieren können.

func _input(event):
	if event.is_action_pressed("ui_left"):
		print("die zugewiesene Taste für Links ist gedrückt worden")

Eigene Aktionen hinzufügen

Über Menü(Projekt) ⇒ Menüpunkt(Projekteinstellung) ⇒ Reiter(Eingabe Zuordnung) können wir eigene Ereignisse definieren. Sowohl die Tastatur, die Maus oder der Joystick können hierbei als Auslöser dienen. Hierzu vergeben wir im Eingabefeld(Aktion) einen Namen welcher mit Return oder dem Button(Hinzufügen) bestätigt wird.

Am Ende der Liste wird dieses Ereignis nun angezeigt. Mit dem Button(+) auf der linken Seite können wir entsprechende Ereignisse hinzufügen. In dem Dialogfenster wählen wir das Eingabemedium aus und müssen dann die entsprechende Taste drücken.

Wird künftig das Projekt gestartet und am Eingabemedium wird diese Taste gedrückt, können wir über folgende Skriptzeile, den von uns bestimmten Aktionsnamen abfragen:

func _input(event):
	if event.is_action_pressed("SpielerNachOben"):
		print("SpielerNachOben")

per Skript

Die Erzeugung einer Aktion ist auch per Skript möglich:

var iek = InputEventKey.new()
func _ready():
	# zunächst prüfen ob die Aktion schon vorhanden ist
	if !InputMap.has_action("dummi_aktion"):
		# Taste zuweisen
		iek.scancode = KEY_T
		# Aktion hinzufügen
		InputMap.add_action("dummi_aktion")
		# der Aktion ein Event zuweisen
		InputMap.action_add_event("dummi_aktion", iek)

Bei der Einrichtung mehrerer Aktionen, kann dieses Skript helfen:

func initKeymap():
    var keymap = {
    "move_left" : KEY_A,
    "move_right" : KEY_D,
    "move_forward" : KEY_W,
    "move_backward" : KEY_S,
    "move_sprint" : KEY_SHIFT,
    "move_jump" : KEY_SPACE,
    "change_fly" : KEY_T,
    "crouch" : KEY_C,
    "interact" : KEY_E,
    }
    for action in keymap:
        InputMap.add_action(action)
        var ev = InputEventKey.new()
        ev.scancode = keymap[action]    
        InputMap.action_add_event(action, ev) 

windy – 18.09.2019

godot/syntax/action.txt · Zuletzt geändert: 2020/10/11 22:48 (Externe Bearbeitung)