AppResidencia/juegos/scripts/gimnasio/game_gym.gd

108 lines
3.8 KiB
GDScript3
Raw Normal View History

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
var players_selected = []
func _ready():
videos = [
{"name" : "Marcha", "video" : preload("res://videos/gimnasio/1_marcha.ogv"), "level": 0},
{"name" : "Brazos al lado", "video" : preload("res://videos/gimnasio/2_alcance_vertical.ogv"), "level": 0},
{"name" : "Brazos arriba sentado", "video" : preload("res://videos/gimnasio/6_levantar_brazos_sentado.ogv"), "level": 0},
{"name" : "Sentar y levantar", "video" : preload("res://videos/gimnasio/7_levantarse_sentarse.ogv"), "level": 1},
{"name" : "Nadar", "video" : preload("res://videos/gimnasio/10_nadar_en_el_aire.ogv"), "level": 1},
{"name" : "Movimientos laterales", "video" : preload("res://videos/gimnasio/8_movimientos_laterales.ogv"), "level": 1},
{"name" : "Moviminetos laterales + puntillas", "video" : preload("res://videos/gimnasio/9_movimientos_laterales_con_puntillas.ogv"), "level": 1},
{"name" : "Pesa arriba sentado", "video" : preload("res://videos/gimnasio/3_pesa-arriba_sentado.ogv"), "level": 2},
{"name" : "Pesa atras sentado", "video" : preload("res://videos/gimnasio/4_pesa_atras_sentado.ogv"), "level": 2},
{"name" : "Pesas doble sentado", "video" : preload("res://videos/gimnasio/5_pesas_dobles_sentado.ogv"), "level": 2}
]
await get_tree().process_frame
$Blocker.visible = true
$Charecter.visible = true
$TextBallon.visible = true
audio_player.play()
await audio_player.finished
for i in range(3, 0, -1):
$TextBallon/Label.text = str(i)
$TextBallon/Label.add_theme_font_size_override("font_size", 100)
await get_tree().create_timer(1.0).timeout
$TextBallon/Label.text = "¡Ya!"
await get_tree().create_timer(1.0).timeout
$Blocker.visible = false
$Charecter.visible = false
$TextBallon.visible = false
for excercise_name in excercises_order:
for video in videos:
if video["name"] == excercise_name:
ordered_videos.append(video)
break
for player in players_selected:
for video in ordered_videos:
GameData.start_game(player.id, video.level, video.name)
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)
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():
for player in players_selected:
GameData.end_game(ordered_videos.get(current_index - 1).name, AppConstants.NAME_JUEGO_GIMNASIO)
video_player.stream = ordered_videos[current_index].video
video_player.play()
else:
$EndOfVideosWindow.show()
$Blocker.visible = true
$Blocker.get
video_player.stop()
func _on_exit_menu_button_pressed(exit : bool):
if exit:
GameData.clear_active_games()
GameData.clear_completed_games()
SceneManager.go_back_to_previous_scene()
else:
$ExitButtonWindow.hide()
$Blocker.visible = false
func _on_end_of_videos_button_pressed():
for player in players_selected:
GameData.end_game(ordered_videos.get(current_index - 1).name, AppConstants.NAME_JUEGO_GIMNASIO)
SceneManager.go_back_to_previous_scene()