adding skipping logic

This commit is contained in:
betalars 2023-08-01 10:52:08 +02:00
parent 008279fa83
commit a93e134c26
2 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,46 @@
extends Control
signal skip
@export var skip_delay: float = 0.5
@export var costum_owner: NodePath
var time_pressed: float = 0
@onready var button: Button = $"Skip Button"
@onready var progress: ProgressBar = $ProgressBar
var pressed: bool
func _ready():
owner = get_node(costum_owner)
if owner == null:
owner = get_parent().get_parent()
owner.connect("visibility_changed", Callable(self, "owner_visibility_changed"))
visible = owner.visible
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if pressed and visible:
time_pressed += delta
progress.value = time_pressed / skip_delay
if time_pressed >= skip_delay:
emit_signal("skip")
pressed = false
time_pressed = 0
func _input(event):
if visible:
if event.is_action_pressed("skip"):
pressed = true
elif event.is_action_released("skip"):
pressed = false
time_pressed = 0
func owner_visibility_changed():
visible = owner.visible
func _on_skip_button_toggled(button_pressed):
if button_pressed:
pressed = true
else:
pressed = false
time_pressed = 0

View File

@ -0,0 +1,43 @@
[gd_scene load_steps=2 format=3 uid="uid://dvwuhobhka78d"]
[ext_resource type="Script" path="res://logic-scenes/misc/skip_control.gd" id="1_s6riu"]
[node name="skip_control" type="Control"]
layout_mode = 3
anchors_preset = 0
size_flags_horizontal = 4
size_flags_vertical = 8
script = ExtResource("1_s6riu")
[node name="ProgressBar" type="ProgressBar" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -160.0
offset_top = -19.5
offset_right = 160.0
offset_bottom = 19.5
grow_horizontal = 2
grow_vertical = 2
max_value = 1.0
show_percentage = false
[node name="Skip Button" type="Button" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -108.0
offset_top = -21.5
offset_right = 108.0
offset_bottom = 21.5
grow_horizontal = 2
grow_vertical = 2
text = "hold x or [ ] to skip"
[connection signal="toggled" from="Skip Button" to="." method="_on_skip_button_toggled"]