Space Invaders

Nous sommes Adrien Chotard et Pierre Engelstein, deux étudiants d’EI2. Nous avons réalisé une adaptation du Space Invaders, un jeu créé à l’origine par Tomohiro Nishikado en 1978.

Space Invaders Original
Le space invaders original
Le but de ce projet était de travailler avec le langage de programmation Python et d’organiser un projet de développement avec toutes les problématiques qui entrent en jeu : la découverte d’un nouveau langage, l’organisation en groupe et le développement d’algorithmes spécifiques


La vidéo suivante montre le rendu final du jeu :
  • Le déplacement du joueur :

Ce jeu est censé se jouer sur une borne d’arcade, avec des joysticks. Les entrées sont analogiques, et donc pour pouvoir en avoir un aperçu sur ordinateur nous avons décidé de gérer le déplacement du joueur avec la souris. Pour cela, le joueur déplace la souris et fait bouger en conséquence le vaisseau à l’écran. Si le pointeur de souris est en dehors de la fenêtre de jeu, le vaisseau ne sort pas de la fenêtre mais reste bloqué contre le bord de la fenêtre.
  • Le déplacement des aliens :

Le principe est que chaque monstre se déplace l’un après l’autre. Ainsi, le premier (en bas à gauche) avance, puis peu de temps après le deuxième, puis encore après le troisième, etc, en suivant un défilement de gauche à droite, puis de bas en haut. Ensuite, dès lors que l’un des monstres est arrivé à l’autre bout de la fenêtre, tous les monstres (en partant du premier) repartent dans l’autre sens.
  • La gestion des collisions :

Afin de détecter lorsqu’une balle touche un ennemi (ou qu’une balle ennemie touche le joueur), nous avons implémenté une gestion des collisions. Pour cela, nous avons considéré des boîtes de collision rectangulaires autour de chaque entité, et si une des boîtes de collision intersecte avec une autre (celle d’une balle avec celle d’un alien ou du joueur), alors il y a collision. Dès lors, un script faisant perdre de la vie aux aliens, ou tuant le joueur (Game Over) se lance.
  • Les menus :

Menu Space Invaders
Le menu de démarrage
Menu Gagné Menu Perdu
Menu de fin – Gagné Menu de fin – Perdu
Nous avons mis en place un système de menus de manière à naviguer, lancer la partie, afficher les scores puis de quitter le jeu. Pour cela, nous avons mis en place un système de boutons personnalisés, nous permettant de naviguer au clavier entre eux (toujours dans l’optique d’une adaptation pour borne d’arcade). De même, pour cette partie du projet, nous avons décidé de créer des titres pour le menu principal et les menus de fin (Perdu et Gagné).
  • Conclusion :

Nous pourrions améliorer et adapter ce projet, par exemple en le faisant fonctionner via une raspberry pi reliée à un joystick, mais aussi l’adapter sur un autre langage de programmation de manière a aborder le problème d’une optique différente.

Nous remercions Mr. Fasquel, notre encadrant pour ce projet.