Skip to content

MilkaOsa/juegoOca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Rimworld Mini Game - Análisis y Decisiones de Desarrollo

📌 Concepto General del Juego

Objetivo del Juego: Rimworld Mini Game es un juego de supervivencia 2D en el que el jugador se enfrenta a enemigos, recolecta objetos y avanza por niveles cada vez más difíciles. A medida que progresa, el jugador acumula puntos y se enfrenta a obstáculos que desafían su habilidad y estrategia.

Plataforma de Desarrollo: Se ha desarrollado en HTML, CSS y JavaScript. La lógica visual se desarrolla principalmente dentro de un en HTML5, que permite un control preciso de cada elemento del juego.

🛠 Diseño de la Estructura del Código

La organización modular del código permite una fácil escalabilidad y mantenimiento del juego:

GameManager.js: Controlador principal que maneja el flujo del juego y la interacción de las entidades.

LevelManager.js: Crea y organiza el entorno y los obstáculos para cada nivel, aumentando la dificultad.

ObjectManager.js: Maneja los objetos recolectables, como las estrellas y escudos.

Player.js: Define el jugador y gestiona su movimiento y la interacción con el entorno.

EnemyManager.js: Controla el comportamiento y los movimientos de los enemigos.

UIManager.js: Se encarga de mostrar en la interfaz los contadores de nivel, tiempo, vidas y el botón de pausa.

Decisión clave: Esta modularización permite un flujo de desarrollo claro, donde cada archivo JavaScript tiene una responsabilidad específica. Esto facilita la depuración y mejora la estructura para futuras expansiones.

🎨 Diseño del Entorno de Juego con

Uso del : Este juego se renderiza dentro de un canvas HTML5, lo que permite un control total sobre el entorno visual y garantiza una animación rápida y fluida.

Contexto 2D: Utiliza ctx = canvas.getContext('2d') para gráficos en dos dimensiones, ideal para juegos 2D.

Decisión clave: El uso de permite actualizar el entorno de juego en tiempo real y manejar la frecuencia de cuadros por segundo (FPS) para una experiencia de juego fluida.

🕹 Lógica del Jugador y Movimiento

Movimiento y Control: El jugador se mueve en cuatro direcciones utilizando las teclas de flecha.

Salud del Jugador: Incluye una barra de salud que disminuye al recibir daño.

Detección de Colisiones: Se usa Player.js para verificar colisiones con objetos recolectables y enemigos.

Decisión clave: La lógica de movimiento asegura una respuesta en tiempo real a la entrada del jugador y la simulación de daño y colisiones añade desafío al juego.

🏗 Diseño de Niveles

Matriz de Niveles: Cada nivel se representa mediante una matriz en LevelManager.js, donde cada valor corresponde a un elemento en el entorno (bloques, obstáculos, etc.).

Cambio de Dificultad: Se incrementa la dificultad mediante nuevos obstáculos y la aparición de enemigos adicionales.

Decisión clave: Representar el entorno con matrices simplifica la creación y modificación de niveles, permitiendo ajustes rápidos.

🎁 Manejo de Objetos Recolectables

Tipos de Objetos: Incluye estrellas, escudos y mejoras de salud.

Detección de Recolección: Los objetos se recolectan al entrar en contacto con el jugador, proporcionando un beneficio inmediato.

Decisión clave: La gestión precisa de colisiones mejora la experiencia del usuario y hace que los objetos tengan un impacto en el progreso del jugador.

👾 Gestión de Enemigos

Tipos de Enemigos: Se incluyen enemigos como "chaser" (persiguen al jugador) o "random" (movimiento aleatorio).

Colisiones con el Jugador: Los enemigos aplican daño al jugador al entrar en contacto con él, manejado por EnemyManager.js.

Decisión clave: Definir diferentes tipos de enemigos añade variedad y dinamismo al juego, proporcionando un desafío adicional.

🔄 Bucle de Juego y Renderizado Continuo

requestAnimationFrame(): La función gameLoop actualiza constantemente la posición del jugador, enemigos y objetos.

Gravedad y Física Básica: Se aplican efectos físicos para realismo en el movimiento.

Decisión clave: Usar requestAnimationFrame() optimiza el rendimiento y mantiene la fluidez del juego.

🎮 Diseño de Interacción con el Usuario

Interfaz: UIManager.js maneja la visualización de los contadores de tiempo, vidas, objetos y nivel.

Eventos de Teclado: Facilita el control del jugador mediante teclas de dirección.

Botón de Pausa: Permite detener y reanudar el juego fácilmente.

Decisión clave: Una interfaz clara y controles intuitivos son esenciales para la experiencia del usuario.

🏆 Decisiones Generales de Diseño y Flujo de Desarrollo

Separación de Lógica y Renderizado: Facilita la depuración y optimización.

Modularidad: Hace que el juego sea más fácil de escalar y mejorar.

Simulación de Física: Mejora la jugabilidad con efectos realistas.

Optimización con requestAnimationFrame(): Mantiene un rendimiento fluido.

📌 Conclusión

Rimworld Mini Game fue diseñado para ser un juego 2D intuitivo y fácil de mantener, incorporando principios de programación modular, optimización de animaciones y una estructura clara para la gestión de niveles y elementos interactivos. La experiencia del usuario es la prioridad, asegurando una jugabilidad fluida y envolvente.

Este README resume las decisiones de diseño y el flujo de desarrollo, destacando cómo cada módulo contribuye a la estructura general del juego y a la experiencia del jugador.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors