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:
Usando as configurações do projeto
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.
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)
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);
}
Nota
Verifique Input.set_custom_mouse_cursor().
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.