godot-psd-training/UI/psl/Button.gd

32 lines
1.1 KiB
GDScript

extends Sprite2D
func _ready() -> void:
set_process_input(true)
if $"../..".buttonType == $"../..".ButtonType.red:
var icon = preload("res://Assets/psl/按钮_红.png")
self.set_texture(icon)
elif $"../..".buttonType == $"../..".ButtonType.black:
var icon = preload("res://Assets/psl/按钮_黑.png")
self.set_texture(icon)
func test_enter():
var mouse_position = get_global_mouse_position()
return self.get_rect().has_point(to_local(mouse_position))
func _input(event):
if event is InputEventMouseMotion:
var flag1 = test_enter()
if flag1 and Input.get_current_cursor_shape() != Input.CursorShape.CURSOR_POINTING_HAND:
$"..".set_default_cursor_shape(Input.CursorShape.CURSOR_POINTING_HAND)
elif !flag1 and Input.get_current_cursor_shape() != Input.CursorShape.CURSOR_ARROW:
$"..".set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
var flag2 = test_enter()
if flag2:
if !$"../..".allowHandle :
return
$"../..".clickButtonSignal.emit(true,$"../..")