Menu
CoddyTech

Tableau des scores

Leçon 34 sur 40 du cours Créez des jeux avec Pygame de Coddy.

Une balle qui sort par la droite rapporte un point au joueur de gauche, et inversement. Divise le test en deux, pour que chaque côté sache qui a marqué :

if ball.left > 600:
    left_score += 1
    ball.center = (300, 200)
    vx = -vx
if ball.right < 0:
    right_score += 1
    ball.center = (300, 200)
    vx = -vx

Affiche les deux scores sur une seule ligne en haut, centrés : f"{left_score} : {right_score}" affiche 2 : 1.

challenge icon

Défi

Facile
  1. Avant la boucle, crée font = pygame.font.Font(None, 36), left_score = 0 et right_score = 0.
  2. Divise la réinitialisation en deux : une balle qui dépasse le bord droit ajoute 1 à left_score, une balle qui dépasse le bord gauche ajoute 1 à right_score. Dans les deux cas, replace la balle au milieu et inverse vx.
  3. Affiche f"{left_score} : {right_score}" en (240, 240, 240), centré en (300, 30).

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pong")
clock = pygame.time.Clock()

ball = pygame.Rect(293, 193, 14, 14)
vx, vy = 5, 4
left = pygame.Rect(20, 160, 12, 80)
right = pygame.Rect(568, 160, 12, 80)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
        left.y -= 6
    if keys[pygame.K_s]:
        left.y += 6
    if keys[pygame.K_UP]:
        right.y -= 6
    if keys[pygame.K_DOWN]:
        right.y += 6
    left.clamp_ip(screen.get_rect())
    right.clamp_ip(screen.get_rect())

    ball.x += vx
    ball.y += vy
    if ball.top <= 0 or ball.bottom >= 400:
        vy = -vy
    if ball.colliderect(left):
        vx = abs(vx)
    if ball.colliderect(right):
        vx = -abs(vx)
    if ball.right < 0 or ball.left > 600:
        ball.center = (300, 200)
        vx = -vx

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), left)
    pygame.draw.rect(screen, (235, 80, 80), right)
    pygame.draw.rect(screen, (255, 196, 0), ball)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Créez des jeux avec Pygame

Entraînez-vous par vous-même : Playground Pygame