You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Un juego de gestión de tráfico urbano desarrollado con Phaser 3 y TypeScript. Tomas el rol de operador del Centro de Control Vial y debes coordinar semáforos, gestionar emergencias y mantener el flujo vehicular bajo presión creciente.
# Clonar el repositorio
git clone https://github.com/Gameoversv/HCIGAME.git
cd HCIGAME
# Instalar dependencias
npm install
# Servidor de desarrollo (http://localhost:5173)
npm run dev
# Build de producción
npm run build
# Vista previa del build
npm run preview
Controles
Teclado (desktop)
Tecla
Acción
TAB
Cambiar intersección seleccionada
C
Cambiar semáforo de la intersección activa
U
Deshacer último cambio de semáforo
E
Atender emergencia (ambulancia) en la intersección activa
1
Usar power-up Control Automático
2
Usar power-up Despejar Congestión
3
Usar power-up Escudo
Click
Interactuar con botones del HUD
Táctil (móvil)
UI
Acción
Tocar intersección
Seleccionar intersección
Tocar intersección activa
Cambiar semáforo
HUD (botones en pantalla)
Activar power-ups y acciones disponibles
Modo AR
Elemento
Acción
Botón Modo AR en menú
Activa AR (WebXR si está disponible)
Reticle + Colocar Tablero Aquí
Fija la mesa de juego en una superficie
Botón Salir AR
Sale de AR y restaura modo normal
Fallback sin WebXR
Usa cámara trasera + inclinación del dispositivo
Estructura del proyecto
src/
├── ar/
│ ├── ARManager.ts # Modo AR (WebXR + fallback cámara/orientación)
│ └── webxr-types.d.ts # Tipos mínimos para APIs WebXR
├── config/
│ └── LevelConfig.ts # Definición de niveles, misiones y umbrales de estrellas
├── objects/
│ ├── Intersection.ts # Intersección con carriles, vehículos y lógica de cruce
│ ├── TrafficLight.ts # Visual del semáforo
│ └── Vehicle.ts # Tipos de vehículos con seguimiento de distancia
├── scenes/
│ ├── MenuScene.ts # Menú principal
│ ├── LevelSelectScene.ts # Selección de nivel con estrellas y puntuaciones
│ ├── BriefingScene.ts # Pantalla pre-ronda con misiones y mejoras activas
│ ├── GameScene.ts # Escena principal de juego
│ ├── HUDScene.ts # Interfaz: puntuación, misiones, power-ups, clima, combo
│ ├── GameOverScene.ts # Resultados de la ronda con progresión (XP/créditos)
│ └── StoreScene.ts # Tienda de mejoras permanentes
├── state/
│ └── GameState.ts # Estado global de la partida
├── systems/
│ ├── TrafficManager.ts # Dificultad adaptativa, hora pico, colisiones
│ ├── MissionTracker.ts # Seguimiento y evaluación de misiones por ronda
│ ├── PowerUpManager.ts # Gestión de power-ups y sus cargas
│ ├── ComboSystem.ts # Multiplicador de combo por aciertos consecutivos
│ ├── WeatherSystem.ts # Sistema de clima dinámico con efectos visuales
│ ├── SaveManager.ts # Persistencia en localStorage por nivel
│ ├── ProgressionManager.ts # XP, créditos, nivel del jugador y mejoras desbloqueables
│ └── RoundMissionFactory.ts # Generador de misiones aleatorias por ronda
├── game.ts # Factory central para crear/destruir Phaser.Game
└── ui/
└── TutorialOverlay.ts # Tutorial paso a paso para el Nivel 1
Niveles
#
Nombre
Intersecciones
Dificultad
Características
1
Turno de Mañana
1
Fácil
Tutorial integrado, tráfico ligero
2
Hora Escolar
2
Media
Ambulancias activas, VIPs frecuentes
3
Hora Pico
2
Difícil
Hora pico activada, clima dinámico
4
Caos Urbano
2
Extremo
Máxima densidad, intervalos de hora pico cortos
Cada nivel se completa al cumplir todas sus misiones de ronda. Al terminar se otorgan entre 0 y 3 estrellas según la puntuación final.
Tipos de misiones
Tipo
Descripción
survive_time
Sobrevivir N segundos sin colapso
safe_crossings
Completar N cruces peatonales seguros
clear_ambulances
Desviar N ambulancias de emergencia
no_accidents
Mantener accidentes por debajo del límite
keep_congestion
Mantener congestión promedio por debajo de N%
score_target
Alcanzar N puntos
handle_rush_hour
Sobrevivir N oleadas de hora pico
Tipos de vehículos
Vehículo
Comportamiento
🚗 Auto
Vehículo estándar
🚌 Bus
Lento, ocupa más espacio
🏍 Moto
Rápida, tamaño reducido
🚛 Camión
Muy lento, tamaño grande
🚑 Ambulancia
Prioridad máxima — requiere intervención del operador
⭐ VIP
Aparece periódicamente, bonus/penalización por tiempo de espera
Sistema de progresión
El jugador acumula XP y Créditos al terminar cada ronda. Los créditos se gastan en la Tienda para desbloquear mejoras permanentes:
Mejora
Efecto
VIP Protocol
Tiempo extra de tolerancia para vehículos VIP
Ops Training
Multiplica recompensas y ajusta penalizaciones
Field Kit
Cargas adicionales de power-ups y mayor duración
Dispatch Hub
Tiempos de ambulancia mejorados
Control Center
Bonus de score inicial y mayor capacidad de undo
City Grants
Multiplica XP ganado y añade créditos extra por ronda
Power-ups
Power-up
Tecla
Efecto
Control Automático
1
Cambia el semáforo de la intersección activa cada 2.5s automáticamente
Despejar Congestión
2
Elimina vehículos en espera de la intersección activa
Escudo
3
Bloquea la siguiente penalización (accidente o VIP perdido)
Sistema de clima (niveles 3 y 4)
El clima cambia dinámicamente durante la partida:
Clima
Efecto
☀️ Despejado
Sin modificadores
🌧 Lluvia
Vehículos más lentos, mayor tasa de spawn
🌫 Niebla
Velocidad reducida moderada
⛈ Tormenta
Mayor penalización, velocidad mínima
Persistencia
El progreso se guarda automáticamente en localStorage:
Estrellas obtenidas por nivel
Mejor puntuación por nivel
XP y créditos acumulados
Mejoras desbloqueadas
Nivel del jugador
Modo Infinito
Accesible desde el menú principal. Usa la configuración del Nivel 4 sin objetivos de misión. El juego continúa hasta el colapso total del sistema. Ideal para superar récords personales de puntuación.
About
Un juego de gestión de tráfico urbano desarrollado con Phaser 3 y TypeScript. Tomas el rol de operador del Centro de Control Vial y debes coordinar semáforos, gestionar emergencias y mantener el flujo vehicular bajo presión creciente.