Sprint 2 - Proyecto Final
Descripción del Proyecto
Para el proyecto final se propuso hacer un fruit ninja en WebGL en 3D. Para soportar 3D quiero modificar la mecánica del juego.
En la versión que planeo crear el jugador se encuentra en un salón. El jugador se puede mover al rededor del salón como si estuviese en un first-person shooter. El objetivo del jugador es prevenir que los objetos (frutas) que estén cayendo del techo toquen el suelo. Para lograr esto el jugador debe desplazarse al rededor del salón e ir pegándole (click) a los objetos que están cayendo. Como en la versión original, el jugador solo puede dejar caer 3 veces un objeto al piso. Así mismo, existen objetos que al destruirse causan que el jugador pierda automáticamente (bombas).
En la versión que planeo crear el jugador se encuentra en un salón. El jugador se puede mover al rededor del salón como si estuviese en un first-person shooter. El objetivo del jugador es prevenir que los objetos (frutas) que estén cayendo del techo toquen el suelo. Para lograr esto el jugador debe desplazarse al rededor del salón e ir pegándole (click) a los objetos que están cayendo. Como en la versión original, el jugador solo puede dejar caer 3 veces un objeto al piso. Así mismo, existen objetos que al destruirse causan que el jugador pierda automáticamente (bombas).
Estado Actual
Luego de haber creado una serie de objetos y clases útiles para acelerar el desarrollo del proyecto final en el Sprint 1, en el Sprint 2 me dedique a lograr mover la cámara como si se estuviese en un first person shooter. El código se encuentra aquí. Un demo funcional se puede encontrar acá. Nótese que la misma página se utiliza para mostrar la versión más reciente del juego, es decir, puede que en un futuro la aplicación mostrada en la página corresponda a la implementación de un sprint más adelante. Independientemente, en el repositorio de Github hay un release que corresponde a esta versión del código que se puede descargar y correr localmente.
Código de Interes
El browser permite capturar el mouse del usuario de tal forma que uno pueda garantizar que este nunca llegue al borde de la pantalla. Esto es útil ya que el mouse se puede utilizar para mover la cámara sin necesidad de dejar el click presionado para rotarla. Para capturar el mouse se utiliza el siguiente segmento de código:
Esto se puede interpretar como cuando el usuario le de click al canvas donde estamos dibujando, le vamos a señalar al browser que vamos a bloquear el mouse.
Después de capturar el mouse, llamamos a la siguiente función cada vez que este se mueva:
Para lograr simular el movimiento del usuario como si se estuviese en un first person shooter, se realizaron las siguientes tareas con sus respectivos tiempos estimados y cuanto realmente me demoré.
- Tarea: Lograr situar la cámara adentro de un cubo donde se mapea una textura distinta a cada cara.
Tiempo Estimado: 4 horas
Tiempo consumido: 7 horas
- Tarea: Capturar el mouse del usuario dentro del canvas de tal forma que este no se pueda salir de el sin importar cuanto lo mueva.
Tiempo estimado: 1 hora
Tiempo consumido: 1 hora
- Tarea: Mover la cámara a medida que el usuario mueve el mouse.
Tiempo estimado: 3 horas
Tiempo consumido: 4 horas
- Tarea: Mover la cámara a medida que el usuario mueve el mouse Y usa las teclas "W", "A", "S", "D".
Tiempo estimado: 5 horas
Tiempo consumido: 5 horas
Para lograr simular el movimiento del usuario como si se estuviese en un first person shooter, se realizaron las siguientes tareas con sus respectivos tiempos estimados y cuanto realmente me demoré.
- Tarea: Lograr situar la cámara adentro de un cubo donde se mapea una textura distinta a cada cara.
Tiempo Estimado: 4 horas
Tiempo consumido: 7 horas - Tarea: Capturar el mouse del usuario dentro del canvas de tal forma que este no se pueda salir de el sin importar cuanto lo mueva.
Tiempo estimado: 1 hora
Tiempo consumido: 1 hora - Tarea: Mover la cámara a medida que el usuario mueve el mouse.
Tiempo estimado: 3 horas
Tiempo consumido: 4 horas - Tarea: Mover la cámara a medida que el usuario mueve el mouse Y usa las teclas "W", "A", "S", "D".
Tiempo estimado: 5 horas
Tiempo consumido: 5 horas
Comentarios
Publicar un comentario