improved card handling
This commit is contained in:
parent
191882e991
commit
4800acd15b
|
|
@ -53,13 +53,14 @@ var scale_tween
|
||||||
|
|
||||||
@export var voice_line: AudioStream = null
|
@export var voice_line: AudioStream = null
|
||||||
@export var is_dragable: bool = false
|
@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
|
var mouse_offset: Vector2
|
||||||
|
|
||||||
# for debugging
|
|
||||||
var is_printed: bool = false
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
||||||
|
|
@ -92,11 +93,8 @@ func _process(delta: float) -> void:
|
||||||
_handle_wiggle(delta)
|
_handle_wiggle(delta)
|
||||||
|
|
||||||
if get_overlapping_areas().size() > 0:
|
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():
|
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
|
var diff:Vector2 = position - area.position
|
||||||
position -= diff.normalized() * ((diff.length()-diameter)/diameter) * bounce_speed * (delta/(1.0/60))
|
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 is InputEventMouseButton:
|
||||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
if is_dragable and "handle_mouse_button" in owner:
|
if is_dragable and "handle_mouse_button" in owner:
|
||||||
|
mouse_offset = (get_viewport().get_mouse_position() - position)
|
||||||
owner.handle_mouse_button(self, event)
|
owner.handle_mouse_button(self, event)
|
||||||
|
|
||||||
func _move_card():
|
func _move_card():
|
||||||
if is_dragged:
|
if is_dragged:
|
||||||
position += get_viewport().get_mouse_position() - position
|
position += (get_viewport().get_mouse_position() - position) - mouse_offset
|
||||||
|
|
||||||
func has_postit_attached() -> bool:
|
func has_postit_attached() -> bool:
|
||||||
var all_children = get_children()
|
var all_children = get_children()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue