Dans ce tutoriel, nous créerons un clone like de space invader avec Python 3 et PyGame.
Environnement virtuel
Premièrement, nous créons un nouveau projet, ainsi qu’un environnement virtuel et un dossier qui contiendra le code source du jeu.
Un environnement virtuel est un environnement indépendant dans lequel on peut installer une version spécifique de Python.
Les librairies installés au sein de l’environnement seront accessible seulement à l’intérieur.
# Création du projet et du dossier pour le code source mkdir -p spaceship-game/source cd spaceship-game # Création de l'environnement virtuel virtualenv -p python3.4 virtualenv # Connexion à l'environnement virtuel, pour déconnexion utiliser deactivate source virtualenv/bin/activate # On se place dans le dossier de l'application cd source
Installation de Pygame
Pour récupérer le projet dans source, utilisez cette commande.
git clone -b step-0 https://github.com/blancheta/spaceship-game.git
Structure du projet
La structure suivante apparait dans le projet.
# source - run.py - resources # Images et Sons - classes # Contient les modèles pour créer Spaceship, Invaders, Bullet, Life - screens # Ecrans de jeu - tests # Fichier de tests
Ressources
Si vous souhaitez modifier les ressources, remplacez simplement le fichier existant par le fichier souhaité.
Fenêtre de jeu
Tout d’abord, nous configurons la fenêtre de jeu avant la boucle mainloop.
# run.py ... pygame.init() # Créer une fenêtre de jeu # set_mode(resolution=(width, height), flags=0, depth=0) screen = pygame.display.set_mode((640, 480), 0, 32) # Couleur de la fenêtre bg_color = (0, 0, 0) # Par défaut, la fenêtre sera Game Menu pygame.display.set_caption('Game Menu') menu_selected = True # Initialisation des vues menu_items = ('Start', 'Settings', 'Quit') gm = GameMenu(screen, menu_items) gs = GameSettings(screen) # l'écran Game sera créé dynamiquement pour permettre le redémarrage au début g = None # Par défaut, la boucle tourne à l'infini. mainloop = True
Boucle de jeu principale
Afin de lancer le jeu à partir du fichier run, nous allons ajouter quelques éléments dans la boucle mainloop.
Cette partie contient le coeur du jeu, pour naviguer entre les différentes écrans.
while mainloop: # Rafraichit l'écran en noir à chaque boucle screen.fill(bg_color) # Démarre l'écran menu par défaut ou après ECHAP if menu_selected or g.escape_selected: gm.run() if g is not None: g.escape_selected = False gs.escape_selected = False # Démarre l'écran de jeu if gm.start_selected: g = Game(screen) g.run() gm.start_selected = False gm.quit_select = False # Démarre l'écran de configuration if gm.settings_selected: gs.run() gm.settings_selected = False # Ferme la fenêtre si Quit est séléctionnée if gm.quit_select is True: mainloop = False pygame.display.flip()
Cette partie du tutoriel s’achève.
Dans la partie 2, nous créerons les vues de Menu et de Configuration.