Godot Version
4.4
Question
extends Node2D
var card_drag
var screen_size
func _ready() -> void:
screen_size=get_viewport_rect().size
func _process(delta: float) -> void:
if card_drag:
var mouse_pos= get_global_mouse_position()
card_drag.position=Vector2(clamp(mouse_pos.x, 0, screen_size.x), clamp(mouse_pos.y, 0, screen_size.y))
func _input(event):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if event.pressed:
var card = ray_check_for_card()
if card:
card_drag = card
else:
card_drag=null
func ray_check_for_card():
var space_state = get_viewport().world_2d.direct_space_state
var parameters = PhysicsPointQueryParameters2D.new()
parameters.position = get_viewport().get_mouse_position()
parameters.collide_with_areas = true
parameters.collision_mask = 1
var result = space_state.intersect_point(parameters)
if result.size() > 0:
print(result[0].collider.get_parent())
return null