AppResidencia/gimnasio/scenes/game.gd

94 lines
3.1 KiB
GDScript

extends Control
@onready var video_player = $VideoStreamPlayer
@onready var menu = $HBoxContainer/MenuButton
@onready var audio_player = $AudioStreamPlayer2D
@onready var exit_menu_confirm_exit_button = $ExitButtonWindow/VBoxContainer/HBoxContainer/ConfirmExitButton
@onready var exit_menu_dont_exit_button = $ExitButtonWindow/VBoxContainer/HBoxContainer/DontExitButton
var videos: Array[Dictionary] = []
var excercises_order = []
var ordered_videos = []
var current_index: int = 0
func _ready():
videos = [
{"name" : "Marcha", "video" : preload("res://videos/1_marcha.ogv")},
{"name" : "Brazos al lado", "video" : preload("res://videos/2_alcance_vertical.ogv")},
{"name" : "Sentar y levantar", "video" : preload("res://videos/7_levantarse_sentarse.ogv")},
{"name" : "Nadar", "video" : preload("res://videos/10_nadar_en_el_aire.ogv")},
{"name" : "Movimientos laterales", "video" : preload("res://videos/8_movimientos_laterales.ogv")},
{"name" : "Moviminetos laterales + puntillas", "video" : preload("res://videos/9_movimientos_laterales_con_puntillas.ogv")},
{"name" : "Pesa arriba sentado", "video" : preload("res://videos/3_pesa-arriba_sentado.ogv")},
{"name" : "Pesa atras sentado", "video" : preload("res://videos/4_pesa_atras_sentado.ogv")},
{"name" : "Pesas doble sentado", "video" : preload("res://videos/5_pesas_dobles_sentado.ogv")},
{"name" : "Brazos arriba sentado", "video" : preload("res://videos/6_levantar_brazos_sentado.ogv")}
]
await get_tree().process_frame
$Blocker.visible = true
audio_player.play()
await audio_player.finished
for i in range(3, 0, -1):
$Countdown.show()
$Countdown.text = str(i)
await get_tree().create_timer(1.0).timeout
$Countdown.text = "¡Ya!"
await get_tree().create_timer(1.0).timeout
$Countdown.hide()
$Blocker.visible = false
menu.get_popup().add_item("Reproducir sonido", 0)
menu.get_popup().add_item("Salir", 1)
menu.get_popup().connect("id_pressed", self._on_menu_item_selected)
for excercise_name in excercises_order:
for video in videos:
if video["name"] == excercise_name:
ordered_videos.append(video)
break
exit_menu_confirm_exit_button.pressed.connect(_on_exit_menu_button_pressed.bind(true))
exit_menu_dont_exit_button.pressed.connect(_on_exit_menu_button_pressed.bind(false))
video_player.stream = ordered_videos[current_index].video
video_player.play()
func _on_menu_item_selected(id):
match id:
0:
audio_player.play()
1:
$ExitButtonWindow.show()
$Blocker.visible = true
func _on_next_video_button_pressed():
current_index += 1
if current_index < ordered_videos.size():
GameData.end_game(ordered_videos.get(current_index -1).name)
video_player.stream = ordered_videos[current_index].video
video_player.play()
else:
$EndOfVideosWindow.show()
$Blocker.visible = true
video_player.stop()
func _on_exit_menu_button_pressed(exit : bool):
if exit:
GameData.clear_active_games()
ScreenManager.go_back_to_previous_scene()
else:
$ExitButtonWindow.hide()
$Blocker.visible = false
func _on_end_of_videos_button_pressed():
GameData.end_game(ordered_videos.get(current_index -1).name)
ScreenManager.go_back_to_previous_scene()