Personalizando o cursor do mouse

Você pode querer alterar a aparência do cursor do mouse em seu jogo para adequá-lo ao design geral. Existem duas maneiras de personalizar o cursor do mouse:

  1. Usando as configurações do projeto

  2. Usando um script

Usar as configurações do projeto é uma maneira mais simples (mas mais limitada) de personalizar o cursor do mouse. A segunda maneira é mais personalizável, mas envolve scripts.

Nota

Você pode exibir um cursor de mouse de "software" ocultando o cursor do mouse e movendo um Sprite para a posição do cursor em um método _process, mas isso adicionará pelo menos um quadro de latência em comparação com um cursor de mouse de "hardware". Portanto, é recomendável usar a abordagem descrita aqui sempre que possível.

Se você tiver que usar a abordagem de "software", considere adicionar uma etapa de extrapolação para exibir melhor a entrada real do mouse.

Usando as configurações do projeto

Abra as configurações do projeto, vá para Display>Mouse Cursor. Você verá Imagem personalizada e Ponto de acesso de imagem personalizada.

../../_images/cursor_project_settings.png

Imagem personalizada é a imagem desejada que você gostaria de definir como o cursor do mouse. Ponto de acesso personalizado é o ponto na imagem que você gostaria de usar como ponto de detecção do cursor.

Nota

A imagem personalizada deve ter menos de 256 x 256.

Usando um script

Crie um nó e anexe o seguinte script.

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)

Projeto de demonstração

Saiba mais estudando este projeto de demonstração: https://github.com/guilhermefelipecgs/custom_hardware_cursor

Lista de cursores

Conforme documentado na classe Input (consulte a enumeração CursorShape), existem vários cursores de mouse que você pode definir. Quais você deseja usar depende do seu caso de uso.