36 lines
876 B
GDScript
36 lines
876 B
GDScript
extends Node
|
|
|
|
@export var move_speed = 1.0
|
|
@export var tap_speed = 5.0
|
|
@export var scale_speed = 0.1
|
|
|
|
var card: Node
|
|
|
|
# TODO: Figure out elastic tween transitions for bounciness.
|
|
|
|
|
|
func handle_constant_tweens(delta: float) -> void:
|
|
if card.dragging:
|
|
move_to(card.get_global_mouse_position() - card.mouse_offset, delta)
|
|
|
|
|
|
func move_to(location: Vector2, delta: float) -> void:
|
|
var tween = create_tween()
|
|
tween.tween_property(card, "position", location, delta * move_speed)
|
|
|
|
|
|
func tap(tapped: bool, delta: float) -> void:
|
|
var tween = create_tween()
|
|
var rotation = 90 if tapped else 0
|
|
tween.tween_property(card, "rotation_degrees", rotation, delta * tap_speed)
|
|
|
|
|
|
func scale(scalar: float) -> void:
|
|
var tween = create_tween()
|
|
var new_scale = Vector2.ONE * scalar
|
|
tween.tween_property(card, "scale", new_scale, scale_speed)
|
|
|
|
|
|
func _ready() -> void:
|
|
card = get_parent()
|