Étape 9: Le logiciel
J’ai eu une certaine expérience avec et savais que je pouvais créer un vol précis ballon en Irrlicht. Irrlicht est une multi-plateforme open source moteur 3D, et les gens sur le forum sont absolument merveilleux à aider les utilisateurs de débutants de gourous. Irrlicht répondre à mes besoins parce que :
- Il est open source et multi-plateforme, et j’ai besoin de développer pour Linux (mon en bas media center est Mythbuntu)
- Les gens sur le forum sont incroyablement patient et serviable
- J’ai eu l’expérience avec elle
Le problème que j’ai eu créait un plein écran vidéo ! J’ai pensé que je pourrais créer une série de « Panneaux d’affichage animé. » Il s’agit d’une méthode par laquelle vous préchargez une série d’images dans la mémoire et préciser le taux auquel ils flip. Eh bien, il s’avère que même mon meilleur clip allait être quelques centaines images 720p, et le système anglo-saxon animation n’était pas conçu pour tenir compte de ce. On m’a conseillé contre cela sur les forums, mais j’ai essayé en tout cas. Maintenant, je peux dire sans aucun doute que la méthode ne fonctionne pas.
Je suis donc allé sur les forums Irrlicht en quête d’une solution. Ce que j’ai trouvé était parfait : Irrlicht VideoMaster. Il s’avère que Bate, des forums Irrlicht, avait écrit une implémentation Irrlicht de la bibliothèque de lecture Theora. Il s’agit d’une belle manière stable de lire les vidéo Ogg Theora . Cela signifie que tout ce que je devais faire était de convertir ma vidéo (h.264) dans ogg, et je pouvais jouer il retour plein écran ou n’importe quelle taille que je choisis - même comme une texture ! Mieux encore, je peux instantanément sauter à toute période de temps (à moins de 0,1 secondes) sur la vidéo, ainsi que lecture, pause, rembobinage, etc..
Comme vous pouvez le voir sur le fil Irrlicht VideoMaster , j’ai eu très peu de mal à le porter vers Linux. J’ai ensuite utilisé ffmpeg pour convertir ma vidéo OGG. A partir de là, il était facile à mettre dans le ballon de soccer, que j’ai avais modélisé à l’étape 3, jouer des sons du jeu personnalisés (sifflets d’arbitre, Vuvuzelas, « démarrage » sonore et un bruit de foule) et du texte standard sur l’écran d’instruire et d’informer le lecteur.
Tout j’avais besoin sans compter que c’était une méthode pour l’arduino et ma demande de parler. J’ai donc eu l’objectif (ardiuno) Envoyer un signal lorsque le ballon a été teed pendant 1/2 seconde et un signal différent si le ballon a été unteed sans passer à travers l’objectif. Lorsqu’il y a un coup de pied réussi, l’arduino envoie 3 octets - x coordonnée, coordonnée y et l’heure de vol.
Pour le vol de la balle, j’ai utilisé essentiellement le système de coordonnées Irrlicht (cartésien) pour simuler le vol de la balle. Je savais que la direction de que la balle roule, et je savais que la vitesse. Tout ce que je devais faire a été mise en œuvre de la gravité, simuler certains spin basé sur où le ballon a été botté et fournir un coefficient de rebondir quand il a heurté le sol. Il fonctionnait très bien ! Tout le code source est disponible sur la dernière étape.
J’ai découvrir un bug-si un joueur a été botter le ballon, et quelqu'un se tenait debout dans le but (un événement probable à la fête d’anniversaire) la balle aurait rouler à une vitesse presque infinie et disparaissent de l’univers. Tout fonctionnait toujours, juste le ballon sur l’écran était invisible jusqu'à ce que vous redémarrez le jeu. Le ballon n’était pas vraiment nécessaire pour jouer, mais il n’a ajouté un facteur cool. Les enfants ne le dérangeait pas. J’ai une vidéo de cela sur l’étape suivante.