You can use
- buttons to begin with which you can later theme on or make them draw themselves.
- use a Line2D to register the mouse moves when left mouse is down.
This will get you started I guess. Make sure project setting Emulate Touch from Mouse
is enabled
extends Node2D
onready var line:Line2D = $Line2D
func _ready():
line.clear_points()
var _d
_d = $Button.connect("mouse_entered", self, '_on_Button_mouse_entered', [$Button])
_d = $Button2.connect("mouse_entered", self, '_on_Button_mouse_entered', [$Button2])
_d = $Button3.connect("mouse_entered", self, '_on_Button_mouse_entered', [$Button3])
_d = $Button4.connect("mouse_entered", self, '_on_Button_mouse_entered', [$Button4])
_d = $Button.connect("mouse_exited", self, '_on_Button_mouse_exited', [$Button])
_d = $Button2.connect("mouse_exited", self, '_on_Button_mouse_exited', [$Button2])
_d = $Button3.connect("mouse_exited", self, '_on_Button_mouse_exited', [$Button3])
_d = $Button4.connect("mouse_exited", self, '_on_Button_mouse_exited', [$Button4])
func _input(event:InputEvent):
if event is InputEventMouseMotion:
return
if event is InputEventMouseButton:
var e:InputEventMouseButton = event
if e.button_mask == BUTTON_LEFT:
if event.is_pressed():
line.add_point(event.position)
else:
# process line
line.clear_points()
if event is InputEventScreenDrag:
# Emulate Touch from Mouse
line.add_point(event.position)
func _on_Button_mouse_entered(b:Button):
print("Enter: ", b.text)
func _on_Button_mouse_exited(b:Button):
print("Exit: ", b.text)