adding skipping logic
This commit is contained in:
parent
008279fa83
commit
a93e134c26
|
|
@ -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
|
||||
|
|
@ -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"]
|
||||
Loading…
Reference in New Issue