Den Mauszeiger anpassen

Möglicherweise möchten Sie das Erscheinungsbild des Mauszeigers in Ihrem Spiel ändern, um es an das Gesamtdesign anzupassen. Es gibt zwei Möglichkeiten, den Mauszeiger anzupassen:

  1. Projekteinstellungen verwenden
  2. Verwenden eines Skripts

Die Verwendung von Projekteinstellungen ist eine einfachere (aber eingeschränktere) Möglichkeit, den Mauszeiger anzupassen. Der zweite Weg ist anpassbarer, benötigt jedoch Skripte.

Bemerkung

Sie können einen "Software"-Mauszeiger anzeigen, indem Sie den Mauszeiger ausblenden und ein Sprite in einer _process-Methode an die Mausposition bewegen. Dies erzeugt jedoch eine winzige Verzögerung im Vergleich zu einem "Hardware"-Mauszeiger. Daher wird empfohlen, nach Möglichkeit den hier beschriebenen Ansatz zu verwenden.

Wenn Sie den "Software"-Ansatz verwenden müssen, sollten Sie einen Extrapolationsschritt hinzufügen, um die tatsächliche Mauseingabe besser anzuzeigen.

Projekteinstellungen verwenden

Öffnen Sie die Projekteinstellungen und gehen Sie zu Anzeige> Mauszeiger. Sie sehen "Benutzerdefiniertes Bild" und "Benutzerdefinierter Hotspot".

../../_images/cursor_project_settings.png

Benutzerdefiniertes Bild ist das gewünschte Bild, das Sie als Mauszeiger festlegen möchten. Benutzerdefinierter Hotspot ist der Punkt im Bild, den Sie als Erkennungspunkt für den Cursor verwenden möchten.

Bemerkung

Das benutzerdefinierte Bild muss kleiner als 256x256 sein.

Verwenden eines Skripts

Erstellen Sie einen Node und hängen Sie das folgende Skript an.

extends Node


# Load the custom images for the mouse cursor.
var arrow = load("res://arrow.png")
var beam = load("res://beam.png")


func _ready():
    # Changes only the arrow shape of the cursor.
    # This is similar to changing it in the project settings.
    Input.set_custom_mouse_cursor(arrow)

    # Changes a specific shape of the cursor (here, the I-beam shape).
    Input.set_custom_mouse_cursor(beam, Input.CURSOR_IBEAM)
public override void _Ready()
{
    // Load the custom images for the mouse cursor.
    var arrow = ResourceLoader.Load("res://arrow.png");
    var beam = ResourceLoader.Load("res://beam.png");

    // Changes only the arrow shape of the cursor.
    // This is similar to changing it in the project settings.
    Input.SetCustomMouseCursor(arrow);

    // Changes a specific shape of the cursor (here, the I-beam shape).
    Input.SetCustomMouseCursor(beam, Input.CursorShape.Ibeam);
}

Bemerkung

Siehe auch Input.set_custom_mouse_cursor().

Beispielprojekt

Weitere Details findet man in diesem Beispielprojekt: https://github.com/guilhermefelipecgs/custom_hardware_cursor

Cursor list

As documented in the Input class (see the CursorShape enum), there are multiple mouse cursors you can define. Which ones you want to use depends on your use case.