Crea un juego de acción rítmica al estilo Guitar Hero | Estructura alámbrica #62

Canaliza tu dios del rock interior con nuestro valiente homenaje. Mark Vanstone tiene el código en la edición de este mes de la revista Wireframe, disponible ahora.

En 2005, un nuevo juego permitió a los jugadores vivir sus fantasías de estrellas de rock. Después de haber fabricado controladores de juegos especializados para Konami, la empresa estadounidense RedOctane solicitó la ayuda de Harmonix para crear Guitar Hero: un juego en el que el objetivo era tocar junto con una pista de música presionando los botones correctos en un controlador con forma de guitarra. El juego fue un éxito instantáneo, generando más de 20 secuelas y spin-offs en el transcurso de unos cinco años.

Guitar Hero, aunque era muy popular en la PS2, también tenía versiones en muchas otras consolas y computadoras.

El controlador de guitarra presentaba cinco botones de colores que representaban diferentes notas, una barra de rasgueo que tenía que ser golpeada a tiempo con las notas que se tocaban y una barra de golpe para cambiar el tono de las notas. Los botones se correspondían con una pantalla de desplazamiento de círculos de colores que se movían hacia abajo en la pantalla mientras se reproducía la música. Si el jugador «tocaba» la guitarra en el momento correcto mientras mantenía presionado el botón del color correcto, ganaba puntos y mantenía entretenida a la audiencia (virtual).

Para nuestra versión de Pygame Zero, no tenemos acceso a un controlador de diseño personalizado, por lo que tendremos que usar un teclado de computadora estándar. Podemos configurar las letras Z, X, C, V y B como los cinco botones. Luego, usaremos la barra espaciadora para rasguear las notas a medida que llegan a la parte inferior del diapasón. Podemos hacer una lista de Actores para los círculos de colores que luego moveremos hacia abajo en la pantalla cada vez update() se llama. Tenemos cinco cuerdas numeradas del 0 al 4 para adjuntar nuestros círculos de colores, y estos deben organizarse para que lleguen a los puntos de destino inferiores exactamente cuando suena la nota.

Nuestro rockero Pygame Zero homenaje a Guitar Hero.

No queremos que los círculos de colores se desincronicen con la música, por lo que la sincronización del movimiento es clave. Debemos asegurarnos de que la velocidad sea consistente, independientemente de la velocidad de la computadora u otras cosas que puedan hacer que la velocidad de fotogramas cambie. Para hacer esto, debemos calcular el tiempo entre cada fotograma, conocido como tiempo delta, y luego mover los círculos de colores según ese valor. Si está utilizando su propia música para la pista de acompañamiento, es posible que deba jugar con estos valores, pero la forma en que se configura esta muestra, las tuplas en el counterPoints lista son el número de cuerda y luego el número de segundos en los que se debe tocar la nota desde el comienzo de la canción. Esta configuración significa que el jugador puede prepararse para tocar la nota a medida que baja por el diapasón, presionar el botón apropiado justo antes de que llegue al objetivo inferior, y si presiona la barra espaciadora cuando el círculo de color pasa sobre el objetivo, disparamos de una animación de ‘brillo’ para indicar que han anotado puntos. Podemos darles un poco de margen para que no tengan que ser demasiado precisos con la prensa de barra SPACE.

Aquí está el código de Mark para un juego de acción rítmica similar a Guitar Hero. Para que funcione en su sistema, primero deberá instalar Pygame Zero. Las instrucciones completas se pueden encontrar en wfmag.cc/pgzero. Para obtener el código completo, diríjase a nuestro Github.

Para hacer que la muestra de música sea fácil de tocar, he editado una versión abreviada de una de mis propias canciones bastante lentas donde el jugador toca la línea de bajo. Hay un par de partes complicadas, pero debería poder tocar todas las notas sin demasiados intentos. Puede usar cualquier archivo MP3 o WAV para esto, simplemente colóquelo en el directorio de música y cambie la línea que dice music.play_once(‘themoment’). Entonces todo lo que necesita hacer es cambiar los tiempos en el counterPoints lista.

Hay otras cosas que podría agregar, como que se reproduzcan notas de error si se mantienen presionados los botones incorrectos. También está esa barra de golpes en el controlador original que puede requerir un poco de pensamiento lateral para replicar en un teclado, pero le dejaremos ese desafío a usted.

Obtenga su copia de Wireframe #62

Puede leer más funciones como esta en el número 62 de Wireframe, disponible directamente en Raspberry Pi Press, que entregamos en todo el mundo.

¡Tenemos una nueva oferta de subs! Suscríbete a Wireframe por un año y obtén un GRATIS 8BitDo Controlador Bluetooth Pro 2 por valor de £ 39.

Y si prefieres tus revistas en formato digital, ¡también puedes descargar el número 61 de Wireframe en PDF gratis!