Files
cours/pygame/bouncing_ball/f
2025-01-23 14:45:10 +01:00

54 lines
12 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: raquette.py
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 1 │ import sys
 2 │ import pygame
 3 │ from balle import Balle
 4 │ from raquette import Raquette
 5 │ from constantes import *
 6 │
 7 │ pygame.init()
 8 │
 9 │ # Création de la fenêtre
 10 │ ecran = pygame.display.set_mode((LARGEUR_ECRAN, HAUTEUR_ECRAN))
 11 │ ecran.fill(BLANC)
 12 │ pygame.display.set_caption('Balle rebondissante avec raquette')
 13 │
 14 │ clock = pygame.time.Clock()
 15 │
 16 │ # Initialisation des objets
 17 │ balle = Balle()
 18 │ raquette = Raquette()
 19 │
 20 │ bouge = False
 21 │
 22 │ while True: # Boucle principale
 23 │  for event in pygame.event.get():
 24 │  if event.type == pygame.QUIT:
 25 │  sys.exit()
 26 │  elif event.type == pygame.KEYDOWN:
 27 │  if event.key == pygame.K_SPACE:
 28 │  bouge = not bouge
 29 │  elif event.key == pygame.K_LEFT:
 30 │  raquette.deplaceGauche()
 31 │  elif event.key == pygame.K_RIGHT:
 32 │  raquette.deplaceDroite()
 33 │
 34 │  ecran.fill(BLANC)
 35 │
 36 │  if bouge:
 37 │  balle.deplace()
 38 │
 39 │  # Collision balle-raquette
 40 │  if (balle.ypos + balle.rayon >= HAUTEUR_ECRAN - 20 and
 41 │  raquette.xpos <= balle.xpos <= raquette.xpos + raquette.largeur):
 42 │  balle.yvit = -balle.yvit
 43 │
 44 │  balle.affiche(ecran)
 45 │  raquette.affiche(ecran)
 46 │
 47 │  pygame.display.update()
 48 │  clock.tick(60)
 49 │
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────