diff --git a/Contribution Noham RIVOIRARD.odt b/Contribution Noham RIVOIRARD.odt new file mode 100644 index 0000000..888c41d Binary files /dev/null and b/Contribution Noham RIVOIRARD.odt differ diff --git a/V3/balle.png b/V3/balle.png new file mode 100644 index 0000000..e1f3d1b Binary files /dev/null and b/V3/balle.png differ diff --git a/V3/coeur.png b/V3/coeur.png new file mode 100644 index 0000000..a976989 Binary files /dev/null and b/V3/coeur.png differ diff --git a/V3/joueur.png b/V3/joueur.png new file mode 100644 index 0000000..68bc23f Binary files /dev/null and b/V3/joueur.png differ diff --git a/V3/terrain.png b/V3/terrain.png new file mode 100644 index 0000000..7be2ebe Binary files /dev/null and b/V3/terrain.png differ diff --git a/V4/balle.png b/V4/balle.png new file mode 100644 index 0000000..e1f3d1b Binary files /dev/null and b/V4/balle.png differ diff --git a/V4/coeur.png b/V4/coeur.png new file mode 100644 index 0000000..314e286 Binary files /dev/null and b/V4/coeur.png differ diff --git a/V4/coeurfaded.png b/V4/coeurfaded.png new file mode 100644 index 0000000..e6d4def Binary files /dev/null and b/V4/coeurfaded.png differ diff --git a/V4/joueur.png b/V4/joueur.png new file mode 100644 index 0000000..68bc23f Binary files /dev/null and b/V4/joueur.png differ diff --git a/V4/terrain.png b/V4/terrain.png new file mode 100644 index 0000000..7be2ebe Binary files /dev/null and b/V4/terrain.png differ diff --git a/V5/balle.png b/V5/balle.png new file mode 100644 index 0000000..e1f3d1b Binary files /dev/null and b/V5/balle.png differ diff --git a/V5/coeur.png b/V5/coeur.png new file mode 100644 index 0000000..314e286 Binary files /dev/null and b/V5/coeur.png differ diff --git a/V5/coeurfaded.png b/V5/coeurfaded.png new file mode 100644 index 0000000..e6d4def Binary files /dev/null and b/V5/coeurfaded.png differ diff --git a/V5/joueur.png b/V5/joueur.png new file mode 100644 index 0000000..68bc23f Binary files /dev/null and b/V5/joueur.png differ diff --git a/V5/terrain.png b/V5/terrain.png new file mode 100644 index 0000000..7be2ebe Binary files /dev/null and b/V5/terrain.png differ diff --git a/jeu V1.py b/jeu V1.py new file mode 100644 index 0000000..e1bb4a9 --- /dev/null +++ b/jeu V1.py @@ -0,0 +1,104 @@ +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() diff --git a/jeu V2.py b/jeu V2.py new file mode 100644 index 0000000..767695f --- /dev/null +++ b/jeu V2.py @@ -0,0 +1,112 @@ +import pygame +import random +import sys + +pygame.init() + +# Paramètres de l'écran +WIDTH = 800 +HEIGHT = 600 + +# Couleurs +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) + +# Paramètres de la balle +BALL_RADIUS = 30 + +# Paramètres du joueur +PLAYER_WIDTH = 80 +PLAYER_HEIGHT = 20 + +# Variables du jeu +score = 0 +font = pygame.font.Font(None, 36) + +# Initialisation de l'écran de jeu +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Jeu V2") + +def game(): + global score + + # Position initiale de la balle + ball_pos = [WIDTH // 2, BALL_RADIUS] + ball_velocity_y = 0 + ball_velocity_x = 1 + gravity = 0.1 + + # Position initiale du joueur + player_pos = [WIDTH // 2 - PLAYER_WIDTH // 2, HEIGHT - PLAYER_HEIGHT - 60] + + clock = pygame.time.Clock() + running = True + + while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + + # Gestion des mouvements du joueur + mouse_pos = pygame.mouse.get_pos() + player_pos[0] = mouse_pos[0] - PLAYER_WIDTH // 2 + + # Mise à jour de la logique du jeu + ball_velocity_y += gravity + ball_pos[1] += ball_velocity_y + + # 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: + ball_pos[1] = player_pos[1] - BALL_RADIUS + ball_velocity_y = -ball_velocity_y + score += 1 + ball_velocity_x += random.uniform(-2, 2) + print("Score :", score) + + # Si la balle touche le sol + if ball_pos[1] + BALL_RADIUS >= HEIGHT: + return False + + elif ball_pos[1] <= BALL_RADIUS: + ball_pos[1] = BALL_RADIUS + ball_velocity_y = -ball_velocity_y + + ball_pos[0] += ball_velocity_x + + if ball_pos[0] <= BALL_RADIUS or ball_pos[0] >= WIDTH - BALL_RADIUS: + ball_velocity_x = -ball_velocity_x + + 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)) + + text = font.render("Score: " + str(score), True, WHITE) + text_rect = text.get_rect() + text_rect.center = (WIDTH // 2, 20) + screen.blit(text, text_rect) + + pygame.display.flip() + clock.tick(60) + +def game_over_screen(): + screen.fill(BLACK) + perdu_text = font.render("Perdu", True, WHITE) + perdu_text_rect = perdu_text.get_rect() + perdu_text_rect.centerx = WIDTH // 2 + perdu_text_rect.centery = HEIGHT // 2 + screen.blit(perdu_text, perdu_text_rect) + pygame.display.flip() + pygame.time.wait(3000) + +# Boucle principale +running = True +while running: + score = 0 + game_over = game() + print(game_over) + if game_over == False: + game_over_screen() + running = False + +pygame.quit() diff --git a/jeu V3.py b/jeu V3.py new file mode 100644 index 0000000..004b8f7 --- /dev/null +++ b/jeu V3.py @@ -0,0 +1,128 @@ +import pygame +import random +import sys + +pygame.init() + +# Paramètres de l'écran +WIDTH = 800 +HEIGHT = 600 + +# Couleurs +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) + +# Paramètres de la balle +BALL_WIDTH = 50 +BALL_HEIGHT = 50 +BALL_RADIUS = 50//2 + +# Paramètres du joueur +PLAYER_WIDTH = 80 +PLAYER_HEIGHT = 80 + +# Images choisies +player_image = pygame.image.load("V3/joueur.png") +player_image = pygame.transform.scale(player_image, (PLAYER_WIDTH, PLAYER_HEIGHT)) # Au cas où l'image fait pas la bonne taille +ball_image = pygame.image.load("V3/balle.png") +ball_image = pygame.transform.scale(ball_image, (BALL_WIDTH, BALL_HEIGHT)) # Au cas où l'image fait pas la bonne taille +background_image = pygame.image.load("V3/terrain.png") +background_image = pygame.transform.scale(background_image, (WIDTH, HEIGHT)) # Au cas où l'image fait pas la bonne taille + +# Variables du jeu +score = 0 +font = pygame.font.Font(None, 36) + +# Initialisation de l'écran de jeu +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Jeu V3") + +def game(): + global score + + # Position initiale de la balle + ball_pos = [WIDTH // 2, BALL_RADIUS] + ball_velocity_y = 0 + ball_velocity_x = 1 + gravity = 0.1 + + # Position initiale du joueur + player_pos = [WIDTH // 2 - PLAYER_WIDTH // 2, HEIGHT - PLAYER_HEIGHT - 60] + + clock = pygame.time.Clock() + running = True + + while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + + # Gestion des mouvements du joueur + mouse_pos = pygame.mouse.get_pos() + player_pos[0] = mouse_pos[0] - PLAYER_WIDTH // 2 + + # Mise à jour de la logique du jeu + ball_velocity_y += gravity + ball_pos[1] += ball_velocity_y + + # 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: + ball_pos[1] = player_pos[1] - BALL_RADIUS + ball_velocity_y = -ball_velocity_y + score += 1 + ball_velocity_x += random.uniform(-3, 3) + print("Score :", score) + + # Si la balle touche le sol + if ball_pos[1] + BALL_RADIUS >= HEIGHT: + return False + + elif ball_pos[1] <= BALL_RADIUS: + ball_pos[1] = BALL_RADIUS + ball_velocity_y = -ball_velocity_y + + ball_pos[0] += ball_velocity_x + + # Si la balle touche les murs + if ball_pos[0] <= BALL_RADIUS or ball_pos[0]+BALL_RADIUS//2 >= WIDTH: + ball_velocity_x = -ball_velocity_x + + # Dessiner les éléments + screen.blit(background_image, (0, 0)) # Le terrain + + screen.blit(ball_image, (ball_pos[0] - BALL_RADIUS, ball_pos[1] - BALL_RADIUS)) # La balle + + screen.blit(player_image, (player_pos[0], player_pos[1])) # Le joueur + + text = font.render("Score: " + str(score), True, WHITE) + text_rect = text.get_rect() + text_rect.center = (WIDTH // 2, 20) + screen.blit(text, text_rect) # Le text + + + #_____________ Ne rien mettre en dessous _____________ + pygame.display.flip() + clock.tick(60) + +def game_over_screen(): + screen.fill(BLACK) + perdu_text = font.render("Perdu", True, WHITE) + perdu_text_rect = perdu_text.get_rect() + perdu_text_rect.centerx = WIDTH // 2 + perdu_text_rect.centery = HEIGHT // 2 + screen.blit(perdu_text, perdu_text_rect) + pygame.display.flip() + pygame.time.wait(3000) + +# Boucle principale +running = True +while running: + score = 0 + game_over = game() + print(game_over) + if game_over == False: + game_over_screen() + running = False + +pygame.quit() diff --git a/jeu V4.py b/jeu V4.py new file mode 100644 index 0000000..049090c --- /dev/null +++ b/jeu V4.py @@ -0,0 +1,180 @@ +import pygame +import random +import sys + +pygame.init() + +# Paramètres de l'écran +WIDTH = 800 +HEIGHT = 600 + +# Paramètres de couleurs +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) + +# Paramètres de la balle +BALL_WIDTH = 50 +BALL_HEIGHT = 50 +BALL_RADIUS = 50//2 + +# Paramètres du joueur +PLAYER_WIDTH = 80 +PLAYER_HEIGHT = 80 + +# Paramètres du coeur +COEUR_WIDTH = 75 +COEUR_HEIGHT = COEUR_WIDTH*(440/512) +nbcoeur = 1 + +# Images choisies +player_image = pygame.image.load("V4/joueur.png") +player_image = pygame.transform.scale(player_image, (PLAYER_WIDTH, PLAYER_HEIGHT)) # Au cas où l'image fait pas la bonne taille + +ball_image = pygame.image.load("V4/balle.png") +ball_image = pygame.transform.scale(ball_image, (BALL_WIDTH, BALL_HEIGHT)) + +coeur_image = pygame.image.load("V4/coeur.png") +coeur_image = pygame.transform.scale(coeur_image, (COEUR_WIDTH, COEUR_HEIGHT)) +coeurfaded_image = pygame.image.load("V4/coeurfaded.png") +coeurfaded_image = pygame.transform.scale(coeurfaded_image, (COEUR_WIDTH, COEUR_HEIGHT)) + +background_image = pygame.image.load("V4/terrain.png") +background_image = pygame.transform.scale(background_image, (WIDTH, HEIGHT)) + +# Définir les dimensions et la position du rectangle +largeur_rectangle = 150 +hauteur_rectangle = 40 +x_rectangle = (WIDTH - largeur_rectangle) // 2 # Au milieu horizontalement +y_rectangle = 0 # En haut de l'écran + +# Variables du jeu +score = 0 +font = pygame.font.Font(None, 36) +dercolsol = 0 + + +# Initialisation de l'écran de jeu +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Jeu V4") + + +def game(): + global score, nbcoeur + + # Position initiale de la balle + ball_pos = [WIDTH // 2, BALL_RADIUS] + ball_velocity_y = 0 + ball_velocity_x = 1 + gravity = 0.1 + + # Position initiale du joueur + player_pos = [WIDTH // 2 - PLAYER_WIDTH // 2, HEIGHT - PLAYER_HEIGHT - 60] + + nbcoeur = 1 + clock = pygame.time.Clock() + running = True + dercolsol = 0 + + while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + + # Gestion des mouvements du joueur + mouse_pos = pygame.mouse.get_pos() + player_pos[0] = mouse_pos[0] - PLAYER_WIDTH // 2 + + # Mise à jour de la logique du jeu + ball_velocity_y += gravity + ball_pos[1] += ball_velocity_y + + # 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: + ball_pos[1] = player_pos[1] - BALL_RADIUS + ball_velocity_y = -ball_velocity_y + score += 1 + ball_velocity_x += random.uniform(-3, 3) + print("Score :", score) + + # Si la balle touche le sol + if ball_pos[1] + BALL_RADIUS >= HEIGHT: + current_time = pygame.time.get_ticks() + if current_time - dercolsol >= 1000 : + if nbcoeur >= 1: + nbcoeur -= 1 # Décrémenter le nombre de vies + dercolsol = current_time + ball_velocity_y = -ball_velocity_y + + else: + print(nbcoeur) + return False + pass + + if current_time - dercolsol <= 1000: + print(nbcoeur) + + else: + nbcoeur = nbcoeur + print(nbcoeur) + + # Si la balle touche le plafond + elif ball_pos[1] <= BALL_RADIUS: + ball_pos[1] = BALL_RADIUS + ball_velocity_y = -ball_velocity_y + + ball_pos[0] += ball_velocity_x + + # Si la balle touche les murs + if ball_pos[0] <= BALL_RADIUS or ball_pos[0]+BALL_RADIUS//2 >= WIDTH: + ball_velocity_x = -ball_velocity_x + + # Dessiner les éléments + screen.blit(background_image, (0, 0)) # Le terrain + + screen.blit(ball_image, (ball_pos[0] - BALL_RADIUS, ball_pos[1] - BALL_RADIUS)) # La balle + + screen.blit(player_image, (player_pos[0], player_pos[1])) # Le joueur + + # Afficher le nombre de coeur(s) + if nbcoeur == 1 : + screen.blit(coeur_image, (25, 25)) # Le coeur + + if nbcoeur == 0: + screen.blit(coeurfaded_image, (25,25)) # Le coeur plus transparent + + # Afficher le score + pygame.draw.rect(screen, BLACK, (x_rectangle, y_rectangle, largeur_rectangle, hauteur_rectangle)) + + text = font.render("Score: " + str(score), True, WHITE) + text_rect = text.get_rect() + text_rect.center = (WIDTH // 2, 20) + screen.blit(text, text_rect) # Le score + + #_____________ Ne rien mettre en dessous _____________ + pygame.display.flip() + clock.tick(60) + +def game_over_screen(): + screen.fill(BLACK) + perdu_text = font.render("Perdu", True, WHITE) + perdu_text_rect = perdu_text.get_rect() + perdu_text_rect.centerx = WIDTH // 2 + perdu_text_rect.centery = HEIGHT // 2 + screen.blit(perdu_text, perdu_text_rect) + pygame.display.flip() + pygame.time.wait(3000) + +# Boucle principale +running = True +while running: + score = 0 + nbcoeur = 1 + dercolsol = 0 + game_over = game() + print(game_over) + if game_over == False: + game_over_screen() + running = False + +pygame.quit() diff --git a/jeu V5.py b/jeu V5.py new file mode 100644 index 0000000..b0b36bb --- /dev/null +++ b/jeu V5.py @@ -0,0 +1,188 @@ +import pygame +import random +import sys + +pygame.init() + +# Paramètres de l'écran +WIDTH = 800 +HEIGHT = 600 + +# Paramètres de couleurs +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) + +# Paramètres de la balle +BALL_WIDTH = 50 +BALL_HEIGHT = 50 +BALL_RADIUS = 50//2 + +# Paramètres du joueur +PLAYER_WIDTH = 80 +PLAYER_HEIGHT = 80 + +# Paramètres du coeur +COEUR_WIDTH = 75 +COEUR_HEIGHT = COEUR_WIDTH*(440/512) +nbcoeur = 1 + +# Images choisies +player_image = pygame.image.load("V5/joueur.png") +player_image = pygame.transform.scale(player_image, (PLAYER_WIDTH, PLAYER_HEIGHT)) # Au cas où l'image fait pas la bonne taille + +ball_image = pygame.image.load("V5/balle.png") +ball_image = pygame.transform.scale(ball_image, (BALL_WIDTH, BALL_HEIGHT)) + +coeur_image = pygame.image.load("V5/coeur.png") +coeur_image = pygame.transform.scale(coeur_image, (COEUR_WIDTH, COEUR_HEIGHT)) +coeurfaded_image = pygame.image.load("V5/coeurfaded.png") +coeurfaded_image = pygame.transform.scale(coeurfaded_image, (COEUR_WIDTH, COEUR_HEIGHT)) + +background_image = pygame.image.load("V5/terrain.png") +background_image = pygame.transform.scale(background_image, (WIDTH, HEIGHT)) + +# Définir les dimensions et la position du rectangle +largeur_rectangle = 150 +hauteur_rectangle = 40 +x_rectangle = (WIDTH - largeur_rectangle) // 2 # Au milieu horizontalement +y_rectangle = 0 # En haut de l'écran + +# Variables du jeu +score = 0 +font = pygame.font.Font(None, 36) +dercolsol = 0 +nbrotation = 0 + + +# Initialisation de l'écran de jeu +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Jeu V5") + + +def game(): + global score, nbcoeur + + # Position initiale de la balle + ball_pos = [WIDTH // 2, BALL_RADIUS] + ball_velocity_y = 0 + ball_velocity_x = 1 + gravity = 0.1 + + # Position initiale du joueur + player_pos = [WIDTH // 2 - PLAYER_WIDTH // 2, HEIGHT - PLAYER_HEIGHT - 60] + + nbcoeur = 1 + clock = pygame.time.Clock() + running = True + dercolsol = 0 + nbrotation = 0 + while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + + # Gestion des mouvements du joueur + mouse_pos = pygame.mouse.get_pos() + player_pos[0] = mouse_pos[0] - PLAYER_WIDTH // 2 + + # Mise à jour de la logique du jeu + ball_velocity_y += gravity + ball_pos[1] += ball_velocity_y + + # 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: + ball_pos[1] = player_pos[1] - BALL_RADIUS + ball_velocity_y = -ball_velocity_y + score += 1 + ball_velocity_x += random.uniform(-3, 3) + print("Score :", score) + nbrotation+=5 + + # Si la balle touche le sol + if ball_pos[1] + BALL_RADIUS >= HEIGHT: + current_time = pygame.time.get_ticks() + if current_time - dercolsol >= 1000 : + if nbcoeur >= 1: + nbcoeur -= 1 # Décrémenter le nombre de vies + dercolsol = current_time + ball_velocity_y = -ball_velocity_y + nbrotation+=5 + + + else: + print(nbcoeur) + return False + pass + + if current_time - dercolsol <= 1000: + print(nbcoeur) + + else: + nbcoeur = nbcoeur + print(nbcoeur) + + # Si la balle touche le plafond + elif ball_pos[1] <= BALL_RADIUS: + ball_pos[1] = BALL_RADIUS + ball_velocity_y = -ball_velocity_y + nbrotation+=5 + + ball_pos[0] += ball_velocity_x + + # Si la balle touche les murs + if ball_pos[0] <= BALL_RADIUS or ball_pos[0]+BALL_RADIUS//2 >= WIDTH: + ball_velocity_x = -ball_velocity_x + nbrotation+=5 + + # Dessiner les éléments + screen.blit(background_image, (0, 0)) # Le terrain + + nbrotation+=1 + screen.blit(pygame.transform.rotate(ball_image, nbrotation), (ball_pos[0] - BALL_RADIUS, ball_pos[1] - BALL_RADIUS)) # La balle + + screen.blit(player_image, (player_pos[0], player_pos[1])) # Le joueur + + # Afficher le nombre de coeur(s) + if nbcoeur == 1 : + screen.blit(coeur_image, (25, 25)) # Le coeur + + if nbcoeur == 0: + screen.blit(coeurfaded_image, (25,25)) # Le coeur plus transparent + + # Afficher le score + pygame.draw.rect(screen, BLACK, (x_rectangle, y_rectangle, largeur_rectangle, hauteur_rectangle)) + + text = font.render("Score : " + str(score), True, WHITE) + text_rect = text.get_rect() + text_rect.center = (WIDTH // 2, 20) + screen.blit(text, text_rect) # Le score + + #_____________ Ne rien mettre en dessous _____________ + pygame.display.flip() + clock.tick(60) + +def game_over_screen(): + screen.fill(BLACK) + perdu_text = font.render("Perdu", True, WHITE) + perdu_text_rect = perdu_text.get_rect() + perdu_text_rect.centerx = WIDTH // 2 + perdu_text_rect.centery = HEIGHT // 2 + screen.blit(perdu_text, perdu_text_rect) + pygame.display.flip() + pygame.time.wait(3000) + +# Boucle principale +running = True +while running: + score = 0 + nbcoeur = 1 + dercolsol = 0 + nbrotation = 0 + game_over = game() + print(game_over) + if game_over == False: + game_over_screen() + running = False + +pygame.quit() diff --git a/sprites/balle.png b/sprites/balle.png new file mode 100644 index 0000000..27f8ded Binary files /dev/null and b/sprites/balle.png differ diff --git a/sprites/balle1.png b/sprites/balle1.png new file mode 100644 index 0000000..e1f3d1b Binary files /dev/null and b/sprites/balle1.png differ diff --git a/sprites/big_terrain.PNG b/sprites/big_terrain.PNG new file mode 100644 index 0000000..7be2ebe Binary files /dev/null and b/sprites/big_terrain.PNG differ diff --git a/sprites/coeur.jpg b/sprites/coeur.jpg new file mode 100644 index 0000000..4374a2c Binary files /dev/null and b/sprites/coeur.jpg differ diff --git a/sprites/coeur.png b/sprites/coeur.png new file mode 100644 index 0000000..a976989 Binary files /dev/null and b/sprites/coeur.png differ diff --git a/sprites/coeur.psd b/sprites/coeur.psd new file mode 100644 index 0000000..0e4b417 Binary files /dev/null and b/sprites/coeur.psd differ diff --git a/sprites/joueur.png b/sprites/joueur.png new file mode 100644 index 0000000..a01844b Binary files /dev/null and b/sprites/joueur.png differ diff --git a/sprites/terrain.png b/sprites/terrain.png new file mode 100644 index 0000000..e6ac056 Binary files /dev/null and b/sprites/terrain.png differ diff --git a/sprites/terrain.psd b/sprites/terrain.psd new file mode 100644 index 0000000..e4bf41c Binary files /dev/null and b/sprites/terrain.psd differ diff --git a/sprites/terrain2.png b/sprites/terrain2.png new file mode 100644 index 0000000..1b488e6 Binary files /dev/null and b/sprites/terrain2.png differ diff --git a/sprites/vecteezy/arbitre.png b/sprites/vecteezy/arbitre.png new file mode 100644 index 0000000..893c8ff Binary files /dev/null and b/sprites/vecteezy/arbitre.png differ diff --git a/sprites/vecteezy/asme.png b/sprites/vecteezy/asme.png new file mode 100644 index 0000000..559e110 Binary files /dev/null and b/sprites/vecteezy/asme.png differ diff --git a/sprites/vecteezy/avocat.png b/sprites/vecteezy/avocat.png new file mode 100644 index 0000000..185a188 Binary files /dev/null and b/sprites/vecteezy/avocat.png differ diff --git a/sprites/vecteezy/détourée/arbitre.jpg b/sprites/vecteezy/détourée/arbitre.jpg new file mode 100644 index 0000000..75a384a Binary files /dev/null and b/sprites/vecteezy/détourée/arbitre.jpg differ diff --git a/sprites/vecteezy/détourée/arbitre.png b/sprites/vecteezy/détourée/arbitre.png new file mode 100644 index 0000000..893c8ff Binary files /dev/null and b/sprites/vecteezy/détourée/arbitre.png differ diff --git a/sprites/vecteezy/détourée/arbitre.psd b/sprites/vecteezy/détourée/arbitre.psd new file mode 100644 index 0000000..438f170 Binary files /dev/null and b/sprites/vecteezy/détourée/arbitre.psd differ diff --git a/sprites/vecteezy/détourée/asme.jpg b/sprites/vecteezy/détourée/asme.jpg new file mode 100644 index 0000000..30afb7a Binary files /dev/null and b/sprites/vecteezy/détourée/asme.jpg differ diff --git a/sprites/vecteezy/détourée/asme.png b/sprites/vecteezy/détourée/asme.png new file mode 100644 index 0000000..559e110 Binary files /dev/null and b/sprites/vecteezy/détourée/asme.png differ diff --git a/sprites/vecteezy/détourée/asme.psd b/sprites/vecteezy/détourée/asme.psd new file mode 100644 index 0000000..3c21037 Binary files /dev/null and b/sprites/vecteezy/détourée/asme.psd differ diff --git a/sprites/vecteezy/détourée/avocat.jpg b/sprites/vecteezy/détourée/avocat.jpg new file mode 100644 index 0000000..39d3420 Binary files /dev/null and b/sprites/vecteezy/détourée/avocat.jpg differ diff --git a/sprites/vecteezy/détourée/avocat.png b/sprites/vecteezy/détourée/avocat.png new file mode 100644 index 0000000..185a188 Binary files /dev/null and b/sprites/vecteezy/détourée/avocat.png differ diff --git a/sprites/vecteezy/détourée/avocat.psd b/sprites/vecteezy/détourée/avocat.psd new file mode 100644 index 0000000..1a75867 Binary files /dev/null and b/sprites/vecteezy/détourée/avocat.psd differ diff --git a/sprites/vecteezy/détourée/explorer.jpg b/sprites/vecteezy/détourée/explorer.jpg new file mode 100644 index 0000000..f3caa3e Binary files /dev/null and b/sprites/vecteezy/détourée/explorer.jpg differ diff --git a/sprites/vecteezy/détourée/explorer.png b/sprites/vecteezy/détourée/explorer.png new file mode 100644 index 0000000..c345ebc Binary files /dev/null and b/sprites/vecteezy/détourée/explorer.png differ diff --git a/sprites/vecteezy/détourée/explorer.psd b/sprites/vecteezy/détourée/explorer.psd new file mode 100644 index 0000000..f92349e Binary files /dev/null and b/sprites/vecteezy/détourée/explorer.psd differ diff --git a/sprites/vecteezy/détourée/fou.jpg b/sprites/vecteezy/détourée/fou.jpg new file mode 100644 index 0000000..ae08426 Binary files /dev/null and b/sprites/vecteezy/détourée/fou.jpg differ diff --git a/sprites/vecteezy/détourée/fou.png b/sprites/vecteezy/détourée/fou.png new file mode 100644 index 0000000..a510511 Binary files /dev/null and b/sprites/vecteezy/détourée/fou.png differ diff --git a/sprites/vecteezy/détourée/fou.psd b/sprites/vecteezy/détourée/fou.psd new file mode 100644 index 0000000..74f746e Binary files /dev/null and b/sprites/vecteezy/détourée/fou.psd differ diff --git a/sprites/vecteezy/détourée/lampe.jpg b/sprites/vecteezy/détourée/lampe.jpg new file mode 100644 index 0000000..9f759d6 Binary files /dev/null and b/sprites/vecteezy/détourée/lampe.jpg differ diff --git a/sprites/vecteezy/détourée/lampe.png b/sprites/vecteezy/détourée/lampe.png new file mode 100644 index 0000000..a8d4b93 Binary files /dev/null and b/sprites/vecteezy/détourée/lampe.png differ diff --git a/sprites/vecteezy/détourée/lampe.psd b/sprites/vecteezy/détourée/lampe.psd new file mode 100644 index 0000000..16d9719 Binary files /dev/null and b/sprites/vecteezy/détourée/lampe.psd differ diff --git a/sprites/vecteezy/détourée/muscu.jpg b/sprites/vecteezy/détourée/muscu.jpg new file mode 100644 index 0000000..34f724b Binary files /dev/null and b/sprites/vecteezy/détourée/muscu.jpg differ diff --git a/sprites/vecteezy/détourée/muscu.png b/sprites/vecteezy/détourée/muscu.png new file mode 100644 index 0000000..0b8640d Binary files /dev/null and b/sprites/vecteezy/détourée/muscu.png differ diff --git a/sprites/vecteezy/détourée/muscu.psd b/sprites/vecteezy/détourée/muscu.psd new file mode 100644 index 0000000..c4c515c Binary files /dev/null and b/sprites/vecteezy/détourée/muscu.psd differ diff --git a/sprites/vecteezy/détourée/plage.jpg b/sprites/vecteezy/détourée/plage.jpg new file mode 100644 index 0000000..fbc395f Binary files /dev/null and b/sprites/vecteezy/détourée/plage.jpg differ diff --git a/sprites/vecteezy/détourée/plage.png b/sprites/vecteezy/détourée/plage.png new file mode 100644 index 0000000..9904e80 Binary files /dev/null and b/sprites/vecteezy/détourée/plage.png differ diff --git a/sprites/vecteezy/détourée/plage.psd b/sprites/vecteezy/détourée/plage.psd new file mode 100644 index 0000000..4732869 Binary files /dev/null and b/sprites/vecteezy/détourée/plage.psd differ diff --git a/sprites/vecteezy/détourée/ski.png b/sprites/vecteezy/détourée/ski.png new file mode 100644 index 0000000..db07e16 Binary files /dev/null and b/sprites/vecteezy/détourée/ski.png differ diff --git a/sprites/vecteezy/détourée/vacances.jpg b/sprites/vecteezy/détourée/vacances.jpg new file mode 100644 index 0000000..6b6537b Binary files /dev/null and b/sprites/vecteezy/détourée/vacances.jpg differ diff --git a/sprites/vecteezy/détourée/vacances.png b/sprites/vecteezy/détourée/vacances.png new file mode 100644 index 0000000..68bc23f Binary files /dev/null and b/sprites/vecteezy/détourée/vacances.png differ diff --git a/sprites/vecteezy/détourée/vacances.psd b/sprites/vecteezy/détourée/vacances.psd new file mode 100644 index 0000000..be17d2f Binary files /dev/null and b/sprites/vecteezy/détourée/vacances.psd differ diff --git a/sprites/vecteezy/explorer.png b/sprites/vecteezy/explorer.png new file mode 100644 index 0000000..c345ebc Binary files /dev/null and b/sprites/vecteezy/explorer.png differ diff --git a/sprites/vecteezy/fou.png b/sprites/vecteezy/fou.png new file mode 100644 index 0000000..a510511 Binary files /dev/null and b/sprites/vecteezy/fou.png differ diff --git a/sprites/vecteezy/lampe.png b/sprites/vecteezy/lampe.png new file mode 100644 index 0000000..a8d4b93 Binary files /dev/null and b/sprites/vecteezy/lampe.png differ diff --git a/sprites/vecteezy/muscu.png b/sprites/vecteezy/muscu.png new file mode 100644 index 0000000..0b8640d Binary files /dev/null and b/sprites/vecteezy/muscu.png differ diff --git a/sprites/vecteezy/plage.png b/sprites/vecteezy/plage.png new file mode 100644 index 0000000..9904e80 Binary files /dev/null and b/sprites/vecteezy/plage.png differ diff --git a/sprites/vecteezy/ski.png b/sprites/vecteezy/ski.png new file mode 100644 index 0000000..7d13cf3 Binary files /dev/null and b/sprites/vecteezy/ski.png differ diff --git a/sprites/vecteezy/vacances.png b/sprites/vecteezy/vacances.png new file mode 100644 index 0000000..68bc23f Binary files /dev/null and b/sprites/vecteezy/vacances.png differ