You can to create a canvas (A node ColorRect for example fill with transparent). Then you need a variable Array where you save data to stamps (position, color, size...), then attach script to colorRect and use the signal draw() to draw the stamps
In main script:
var StampsArray = []
func add_stamp(position : Vector2, radius : int, color : Color) -> void:
var data = {
"position" = position ,
"radius" = radius,
"color" = color
}
# Append data to array of stamps
StampsArray.append(data)
# call function in your colorrect
$colorRect.update_stamps(StampsArray)
in color rect:
var stamps_array = []
func update_stamps(data : Array):
stamps_array = data
update() # Force re-draw (function draw() is called)
func draw() -> void:
for data in stamps_array:
draw_circle(data.position, data.radius, data.color)