GMTK-2024/gmtk_2024/scripts/ui_actions.gd

41 lines
1.1 KiB
GDScript3
Raw Normal View History

2024-08-17 19:16:03 +02:00
extends Node
2024-08-18 15:43:21 +02:00
@export var player : CharacterBody2D
@export var scale_duration: float = 0.5
2024-08-18 13:04:09 +02:00
var current_selected = "none"
2024-08-18 16:29:21 +02:00
var target_scale_player: Vector2 = Vector2(1, 1)
2024-08-18 02:48:09 +02:00
2024-08-18 20:13:49 +02:00
func _on_input_event(viewport, event, shape_idx):
2024-08-18 12:09:28 +02:00
if event.is_action_pressed("click"):
2024-08-18 15:43:21 +02:00
var nearest_block = player.find_nearest_block()
if nearest_block and current_selected == "scale_up":
nearest_block.scale_up()
scale_up_player()
2024-08-18 20:13:49 +02:00
elif nearest_block:
2024-08-18 15:43:21 +02:00
nearest_block.scale_down()
scale_down_player()
2024-08-18 12:09:28 +02:00
2024-08-17 19:16:03 +02:00
func select_up():
current_selected = "scale_up"
2024-08-18 13:04:09 +02:00
2024-08-17 19:16:03 +02:00
func select_down():
current_selected = "scale_down"
2024-08-18 13:04:09 +02:00
2024-08-17 19:16:03 +02:00
func select_mirror():
current_selected = "mirror"
2024-08-18 13:04:09 +02:00
func start_scaling(target_node: Node2D, scale_value: Vector2):
var tween = create_tween()
tween.tween_property(target_node, "scale", scale_value, scale_duration)
func scale_up_player():
2024-08-18 20:13:49 +02:00
target_scale_player = Vector2(3.0, 3.0)
2024-08-18 16:29:21 +02:00
start_scaling(player, target_scale_player)
2024-08-18 13:04:09 +02:00
func scale_down_player():
2024-08-18 20:13:49 +02:00
target_scale_player = Vector2(1.0, 1.0)
2024-08-18 16:29:21 +02:00
start_scaling(player, target_scale_player)
2024-08-18 02:48:09 +02:00
2024-08-17 19:16:03 +02:00
func mirror():
2024-08-18 13:04:09 +02:00
pass # Mirror-Funktionalität hier einfügen