extends Area2D class_name Ghost var is_dragging: bool var previous_position: Vector2 func _input(event: InputEvent): if event is InputEventMouseButton: is_dragging = event.pressed previous_position = event.position elif event is InputEventScreenTouch: is_dragging = event.pressed previous_position = event.position if is_dragging: if event is InputEventMouseMotion: var delta = event.position - previous_position move_and_check(position + delta) previous_position = event.position elif event is InputEventScreenDrag: var delta = event.position - previous_position move_and_check(position + delta) previous_position = event.position @onready var sprite: Sprite2D = $Sprite @export var can_place: bool: get: return can_place set(value): if value: sprite.modulate = Color(1.0, 1.0, 1.0, 0.5) else: sprite.modulate = Color(1.0, 0.0, 0.0, 0.5) func move_and_check(destination): position = destination can_place = not has_overlapping_bodies() print(can_place)