Découverte de la programmation de jeu video avec Python et Pygame
- Variable:
- Une donnée de notre programme.
- Comme son nom l'indique cette donnée peu varier au cours de l'execution du programme.
- Exemple: la position d'un joueur
player.x = 10
- Condition:
- Permet d'executer une partie d'un programme sous une certaine condition.
- Exemple: Déplace le joueur à gauche s'il veut aller à gauche sinon déplace le joueur sur la droite s'il veut aller à droite:
if self.direction == "left": self.x = self.x - 4 elif self.direction == "right": self.x = self.x + 4
- Boucle:
- Permet d'executer des actions en boucle.
- Exemple: tant que le joueur n'a pas fermé la fenêtre du jeu, execute le code du jeu
-
running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False ... pygame.display.update()
- Fonction:
- Permet de regrouper plusieurs instructions de notre programme en une seule instruction réutilisable.
- Exemple: une fonction qui permmet au joueur de tirer une balle.
-
def shoot(self): if ship.alive: self.x = ship.x + 15 self.y = ship.y self.is_shot = True ... bullet.shoot()
Notions abordées:
- Variables
- Conditions
Par défault le vaisseau du joueur se trouve en (0, 0).
Trouvez un moyen de placer le joueur en bas de l'écran.
Vous avez réussi à placer le joueur en bas de l'écran.
Maintenant, essayez de faire en sorte que lorsque le joueur se déplace horizontalement lorsque vous appuyez sur les touches gauche et droite de votre clavier. Le joueur ne doit pas pouvoir sortir de l'écran.
Notion abordée:
- Créer et utiliser une fonction
Vous savez maintenant associer des touches de votre clavier à des évenements. Un nouvel élement vient d'être ajouté à notre jeu: le projectile.
Lorsque le joueur appuie la touche Espace, un projectile doit être crée à l'endroit où se trouve le vaisseau.
Ce projectile doit alors traverser l'écran verticalement. Le projectile doit être affiché uniquement lorsqu'il est tiré.
Lorque le projectile quitte l'écran il ne doit plus être considéré comme tiré.
Lorsqu'il y a déjà un projectile qui se déplace à l'écran, le joueur ne doit pas pouvoir en tirer un autre.
Maintenant que le vaisseau peut tirer un projectile, rajoutons un ennemi à notre jeu.
Tout comme le vaisseau, notre ennemi sera représenté par un carré et devra initialement se trouver dans le coin supérieur gauche de l'écran.
L'ennemi doit pouvoir se déplacer vers la droite jusqu'au bord droit de l'écran.
Lorsqu'il atteind le bord droit de l'écran l'ennemi devra descendre de 30 pixel vers le bas de l'écran et se déplacer cette fois-ci de la gauche vers la droite.
Lorsqu'il atteind le bord droit de l'écran l'ennemi devra aussi descendre de 30 pixel vers le bas de l'écran et reprendre un déplacement de la droite vers la gauche et ainsi de suite jusqu'à ce que l'ennemi atteigne le bas de l'écran.
Nous avons maintenant tous les élements nécessaire à la réalisation d'un vrai jeu:
- Un joueur (le vaisseau)
- Des actions réalisable par le joueur (se déplacer et tirer)
- Un ennemi
Il ne nous reste plus qu'à assembler ces différents élements pour rendre notre jeu un peu plus amusant
Si la balle tirée par le joueur entre en collision avec l'ennemi, vous devez faire disparaitre l'ennemi mais aussi la balle.
Si l'ennemi touche le joueur, vous devez faire disparaitre le joueur (GAME OVER).
Donnons de l'intérêt à notre jeu en ajoutant un score et en augmentant progressivement la difficulté.
Plus le jouer réussi à tirer avec succès sur l'ennemi, plus ce dernier se déplacera vite.
Plus l'ennemi se déplace vite, plus le joueur marque de point en réussissant à le toucher.
Si le joueur arrive à tirer sur l'ennemi: l'ennemi est remis à sa position d'origine (0, 0) et sa vitesse augmente de 1
Si le joueur arrive à tirer sur l'ennemi: le score du joueur devra augmenter de la valeur absolue (abs) de la vitesse de l'ennemi.
- abs(4) = 4
- abs(-4) = 4
- abs(-12) = 12
- abs(42) = 42
Essayez de rajouter plusieurs ennemis pour augmenter la difficulté du jeu.