Paso 9: El Software
Tiene alguna experiencia con y sabía que podía crear un vuelo de bola exacta en Irrlicht. Irrlicht es un multiplataforma abierto motor 3D de la fuente, y es absolutamente maravillosa ayudar a los usuarios novatos para los gurús de la gente en el foro. Irrlicht mis necesidades porque:
- Es de código abierto y multiplataforma, y necesito desarrollar para Linux (mi centro de medios de comunicación en la planta baja es Mythbuntu)
- La gente en el foro es increíblemente paciente y servicial
- He tenido experiencia con ella
El problema que tuve fue la creación de una pantalla completa video! Pensé que podría crear una serie de "Vallas de la animación." Este es un método por el cual una serie de imágenes de precarga en la memoria y especificar la velocidad a la que tapa. Bueno, resulta que incluso mi clip más rápido iba a ser unos cien marcos a 720p, y el sistema de cartelera animada no fue diseñado para dar cabida a esto. Que me aconsejaron contra esto en los foros, pero intentado de todas formas. Ahora puedo decir sin duda que el método no funciona.
Así que fui en los foros de Irrlicht en busca de una solución. Lo que encontré fue perfecto: Irrlicht VideoMaster. Resulta que el Bate, de los foros de Irrlicht, había escrito una implementación de Irrlicht de la Theora reproducción biblioteca. Se trata de una manera estable agradable de reproducir vídeo Ogg Theora . Esto significa que todo lo que tenía que hacer era convertir mi video (h.264) a ogg, y pude jugarlo pantalla vuelta completa o cualquier tamaño que elijo - incluso como una textura! Aún mejor, me puedo salta instantáneamente a cualquier período de tiempo (en 0,1 segundos) en el vídeo, así como play, pausa, rebobinado, etc..
Como se puede ver en el hilo de Irrlicht VideoMaster , me costó muy poco portarlo a Linux. Yo utiliza ffmpeg para convertir mi video a OGG. A partir de ahí fue fácil poner en el balón de fútbol que había modelado en el paso 3, jugar a algunos sonidos de juego personalizados (silbatos de árbitro, Vuvuzelas, un 'boot' el sonido y ruido de la muchedumbre) y algo de texto estándar en la pantalla para instruir e informar al jugador.
Todo lo que necesitaba además que era un método para el arduino y mi solicitud a hablar. Tenía la meta (ardiuno) envíe una señal cuando la pelota fue teed para 1/2 segundo y una señal diferente si la bola era unteed sin llegar a la meta. Cuando hay un tiro acertado, el arduino envía 3 bytes - x coordenada y coordenada y tiempo de vuelo.
Para el vuelo de la bola, básicamente usé el sistema de coordenadas de Irrlicht (cartesiano) para simular el vuelo de la bola. Sabía la dirección de que la bola viajaba y conocía la velocidad. Todo lo que tenía que hacer era aplicar gravedad, simular algunos basada en donde la bola fue expulsada de la vuelta y proporcionan un coeficiente de rebote al chocar con el suelo. Funcionó muy bien! Todo el código fuente está disponible en el último paso.
Descubro un error-si un jugador fue patear el balón, y alguien estaba de pie en la meta (un evento probable en la fiesta de cumpleaños) la bola viaja a velocidad casi infinita y desaparecer del universo. Todo todavía, sólo la bola en la pantalla era invisible hasta que reinicie el juego. La pelota no era realmente necesaria para el juego, pero ha agregado un factor cool. Los niños no importa. Tengo un video de esto en el siguiente paso.