es muy rico y muy fácil de buscar para dibujar realmente los gráficos de tu juego. Y luego tienes para colocar tus elementos de juego. Dado que no usas React y no usas state management, solo colocas elementos, solo colocas objetos en tu código, y por ejemplo, tienes el primer jugador, y tienes sus coordenadas, y si está corriendo o no, si está sano o no, y luego tienes al enemigo, por alguna razón es John McLean, pero Fry luchando contra John McLean, y tienes sus coordenadas y la velocidad, y estas son las cosas que representan tus elementos, y luego el Canvas, usarás el Canvas para dibujar desde estos objetos. Tienes que escuchar los controles, ¿verdad?, así que tienes las teclas, y luego escuchas los event listeners en la ventana key down o key up, y una vez que escuchas esos eventos, registras la tecla. Dices, bien, si la tecla fue presionada, entonces la pongo como verdadera, luego la pongo como falsa, y este es el código que hace eso, ¿verdad? Dices que el código de la tecla es izquierda, entonces pones keys.left como presionada, y luego tienes en el objeto keys, tienes la lista de todas las teclas que están presionadas. Luego tienes que implementar la lógica del juego. Entonces, la lógica del juego es donde realmente ocurre el juego. Por ejemplo, dices, bien, si se presionó la tecla izquierda, entonces aumentaré la velocidad X de Batman. Si es hacia abajo, aumentaré la velocidad Y de Batman, y luego tienes que decir, bien, para detectar los bordes, si Batman.y es mayor que la altura de la pantalla, entonces tengo que ponerlo en la altura de la pantalla, y luego dices, bien, si Batman y Superman tienen el mismo X, entonces reducirás las vidas de Batman. De lo contrario, si toma el corazón, aumentas sus vidas, y si es más inteligente, rompes. Y todo esto es para asegurarte de que el código siga la lógica del juego que deseas hacer. Ahora, ten en cuenta que todas esas cosas están sucediendo en un fotograma del juego. Eso nos lleva al bucle del juego. Debes ejecutar un bucle usando request animation frame, y debes hacerlo con toda la magia del juego dentro del bucle. Y en cada fotograma de animación, ejecutas toda la lógica del juego. Entonces, básicamente actualizas todo según las teclas que se presionaron, como vimos. Y luego ejecutas la lógica real del juego. Detectas colisiones, detectas bordes, todo. Y luego en el final, cuando tienes los objetos actualizados, los dibujas en el Canvas, y luego ejecutas el siguiente fotograma, y el siguiente fotograma, y el siguiente fotograma.
Ahora, hablamos de dibujar en el Canvas, pero no es tan fácil. Puedes ver aquí, por ejemplo, cómo dibujar este personaje de arte de píxel en el lienzo. Y ves que es muy, muy, muy, muy largo hacerlo en código. Por lo general, usaremos sprites. Los sprites son, como puedes ver aquí, tienes todos los modos del personaje en una imagen, comprimidos en una imagen, para que puedas usar la parte de la imagen que desees según la posición y la velocidad del personaje. Y cuando ves todo eso, ¿todavía quieres construir un juego? ¿Todavía crees que es fácil? Probablemente no tanto. Afortunadamente, tenemos motores de juego, y los motores de juego son frameworks que encapsulan la mayoría de las cosas de las que no necesitamos preocuparnos, y nos permiten centrarnos en los gráficos y la lógica. Eso nos lleva al capítulo 3, o la mitad de la eficiencia. Hay muchos motores de juego en JavaScript. Phaser es uno de los mejores, y tienes Pixy.js, que también es muy bueno. Tienes GDevelop, y la mayoría de ellos requieren algún tipo de aprendizaje o conocimiento previo para poder usarlos. Elegí mostrar aquí un marco llamado
Comments