Jeu Space Invaders avec Pygame – Partie 1

Dans ce tutoriel, nous créerons un clone like de space invader avec Python 3 et PyGame.

pygame tutoriel

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.

Laisser un commentaire