Momentan sind im Spiel noch viele Oberflächen nur auf PC nutzbar, da sie auf die Maus angewiesen sind.
Der Cursor hier macht diese Oberflächen auch mit Controller nutzbar, da er mit den Tasten WASD[←↑→↓] nutzbar ist.
Das wird später auf Controller Stick übersetzt.
Der Cursor hat drei verschiedene Modi.
Diese sind Aktiv, Passiv und Deaktiviert.
Im Lights-Out Puzzle läuchtet der Cursor in der Farbe welche das Tile wird, und bei Buttons zeigt es ob der Button nutzbar ist.
Der Cursor funktioniert jetzt auch auf modifizierten Buttons, da er eine Area2D hat, die mit dem Button – welcher ebenfalls eine Area2D bekommen hat kommunizieren kann.
Die Funktion wurde mit aufgenommen, da ich die Befürchtung hatte, das Spieler mit dem Cursor des Spiels auf den Exit-Button möchten, und es eine art Schluckauf im Spielerlebnis gibt.
Der Cursor wurde auch so geschrieben das er sich direkt in zum Beispiel die Shop-Szene implementieren lässt, da diese bisher noch keinen Controllersupport hat.
im CursorHandler Skript sind die meisten von extern benötigten daten direkt hiterlegt, um es möglichst schlicht zu halten.
wie zum Beispiel eine Center Funktion
func centerCursor(centerfeld):
$Cursor.position = centerfeld
eine Aktionsabfrage
func cursorAction():
if Input.is_action_just_pressed("aq_action"):
return true
oder die Set Funktionen für den Zustand des Cursors.
func setCursorActive():
$Cursor/CursorImagePassive.visible = false
$Cursor/CursorImageActive.visible = true
$Cursor/CursorImgaeBlocked.visible = false
func setCursorPassive():
$Cursor/CursorImagePassive.visible = true
$Cursor/CursorImageActive.visible = false
$Cursor/CursorImgaeBlocked.visible = false
func setCursorBlocked():
$Cursor/CursorImagePassive.visible = false
$Cursor/CursorImageActive.visible = false
$Cursor/CursorImgaeBlocked.visible = true
Bei Interesse an Gamedev oder Kunst, ich streame den Prozess meine Spieleentwicklung auf Twitch, und für Chat steht ein Discord bereit.