From 4800acd15b5da97ec38757a46acc3c21045cda18 Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Fri, 14 Jul 2023 21:20:04 +0200 Subject: [PATCH] improved card handling --- src/logic-scenes/board/card.gd | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index cd7bd61..cc380ea 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -53,13 +53,14 @@ var scale_tween @export var voice_line: AudioStream = null @export var is_dragable: bool = false +@onready var diameter = $CollisionShape2D.shape.height -@onready var diameter = $CollisionShape2D.shape.radius * 2 +var is_dragged: bool = false: + set(dragged): + is_dragged = dragged + z_index = int(dragged) -var is_dragged: bool = false - -# for debugging -var is_printed: bool = false +var mouse_offset: Vector2 func _ready(): @@ -92,11 +93,8 @@ func _process(delta: float) -> void: _handle_wiggle(delta) if get_overlapping_areas().size() > 0: - if not is_printed: - print_debug(self.name,": ",get_overlapping_areas()) - is_printed = true for area in get_overlapping_areas(): - if self != area: + if area.get_meta("type") != "post-it" and not area.is_dragged: var diff:Vector2 = position - area.position position -= diff.normalized() * ((diff.length()-diameter)/diameter) * bounce_speed * (delta/(1.0/60)) @@ -136,11 +134,12 @@ func _on_input_event(viewport, event, shape_idx): if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT: if is_dragable and "handle_mouse_button" in owner: + mouse_offset = (get_viewport().get_mouse_position() - position) owner.handle_mouse_button(self, event) func _move_card(): if is_dragged: - position += get_viewport().get_mouse_position() - position + position += (get_viewport().get_mouse_position() - position) - mouse_offset func has_postit_attached() -> bool: var all_children = get_children()