import pygame import random import sys import time pygame.init() game_over = False game_over_time = None WIDTH = 800 HEIGHT = 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Jeu V1") # Couleurs BLACK = (0, 0, 0) WHITE = (255, 255, 255) # Paramètres de la balle BALL_RADIUS = 30 ball_pos = [WIDTH // 2, BALL_RADIUS] # Position initiale de la balle # Paramètres du joueur PLAYER_WIDTH = 80 PLAYER_HEIGHT = 20 player_pos = [WIDTH // 2 - PLAYER_WIDTH // 2, HEIGHT - PLAYER_HEIGHT - 60] # Position initiale du joueur player_speed = 10 # Vitesse de déplacement du joueur # Variables du jeu clock = pygame.time.Clock() running = True ball_velocity_y = 0 # Vélocité verticale initiale ball_velocity_x = 1 # Vélocité horizontale initiale gravity = 0.1 # Accélération due à la gravité score = 0 # Le score au début de la partie font = pygame.font.Font(None, 36) # Crée une police pour le texte (taille 36) while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Gestion des mouvements du joueur mouse_pos = pygame.mouse.get_pos() player_pos[0] = mouse_pos[0] - PLAYER_WIDTH // 2 # Met à jour la position du joueur en fonction de la position de la souris # Mise à jour de la logique du jeu #gravity ball_velocity_y += gravity # Applique l'accélération due à la gravité à la vélocité ball_pos[1] += ball_velocity_y # Met à jour la position verticale de la balle en fonction de la vélocité # Si la balle touche le joueur if ball_pos[1] + BALL_RADIUS >= player_pos[1] and ball_pos[0] >= player_pos[0] and ball_pos[0] <= player_pos[0] + PLAYER_WIDTH: # Si y'a collision avec le joueur ball_pos[1] = player_pos[1] - BALL_RADIUS # Rétablit la position de la balle au-dessus du joueur ball_velocity_y = -ball_velocity_y # Inverse la vélocité verticale pour simuler le rebond score += 1 # Incrémente le score ball_velocity_x += random.uniform(-2, 2) # Change la vélocité horizontale de la balle print("Score :", score) # Affiche le score à la console (remplace par ton propre code d'affichage) # Si la balle touche le sol if ball_pos[1] + BALL_RADIUS >= HEIGHT: game_over = True # Active l'état "game_over" ball_pos[1] = HEIGHT + BALL_RADIUS # Déplace la balle hors de l'écran pour la cacher player_pos[1] = HEIGHT + PLAYER_HEIGHT # Déplace le joueur hors de l'écran pour le cacher print('game over') elif ball_pos[1] <= BALL_RADIUS: ball_pos[1] = BALL_RADIUS # Rétablit la position de la balle à l'intérieur de l'écran ball_velocity_y = -ball_velocity_y # Inverse la vélocité pour simuler le rebond # Partie pour faire en sorte que la balle se déplace de gauche à droite # Mise à jour de la logique du jeu ball_pos[0] += ball_velocity_x # Met à jour la position horizontale de la balle en fonction de la vélocité horizontale # Vérifie la collision avec les bords gauche et droit de l'écran if ball_pos[0] <= BALL_RADIUS or ball_pos[0] >= WIDTH - BALL_RADIUS: ball_velocity_x = -ball_velocity_x # Inverse la vélocité horizontale pour changer la direction de la balle # Dessiner les éléments screen.fill(BLACK) pygame.draw.circle(screen, WHITE, ball_pos, BALL_RADIUS) pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)) # Le score text = font.render("Score: " + str(score), True, WHITE) # Convertit le score en chaîne de caractères et crée un objet de texte text_rect = text.get_rect() text_rect.center = (WIDTH // 2, 20) # Positionne le texte au centre en haut de l'écran screen.blit(text, text_rect) # Affiche le texte sur l'écran # Rafraîchissement de l'écran pygame.display.flip() clock.tick(60) # Limite le taux de rafraîchissement à 60 FPS pygame.quit()