Untitled
unknown
python
a year ago
3.0 kB
4
Indexable
import pygame import math import random # Initialisation de Pygame pygame.init() # Constantes SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600 TRACK_COLOR, KART_COLOR, ENEMY_COLOR = (0x20, 0x20, 0x20), (0, 0, 255), (255, 0, 0) # Initialisation de l'écran screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("Karting Game") # Classe pour les karts ennemis class EnemyKart: def __init__(self): self.x = random.randint(0, SCREEN_WIDTH) self.y = random.randint(0, SCREEN_HEIGHT) self.speed = random.uniform(1, 3) self.angle = 0 def move_towards(self, target_x, target_y): direction = math.atan2(target_y - self.y, target_x - self.x) self.x += self.speed * math.cos(direction) self.y += self.speed * math.sin(direction) self.angle = math.degrees(direction) def draw(self): draw_kart(self.x, self.y, self.angle, ENEMY_COLOR) # Fonctions auxiliaires def draw_kart(x, y, angle, color): pygame.draw.polygon(screen, color, [ (x + 10 * math.cos(math.radians(angle)), y + 10 * math.sin(math.radians(angle))), (x + 10 * math.cos(math.radians(angle + 120)), y + 10 * math.sin(math.radians(angle + 120))), (x + 10 * math.cos(math.radians(angle + 240)), y + 10 * math.sin(math.radians(angle + 240))) ]) # Variables du jeu player_kart_x, player_kart_y = SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 player_kart_angle = 0 player_kart_speed = 0 turn_speed = 5 acceleration = 0.2 max_speed = 5 friction = 0.05 # Création des ennemis enemies = [EnemyKart() for _ in range(5)] # Boucle de jeu running = True clock = pygame.time.Clock() while running: # Gestion des événements for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Contrôles du kart du joueur keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_kart_angle += turn_speed if keys[pygame.K_RIGHT]: player_kart_angle -= turn_speed if keys[pygame.K_UP]: player_kart_speed += acceleration if keys[pygame.K_DOWN]: player_kart_speed -= acceleration # Mise à jour de la position et de la vitesse du kart du joueur player_kart_speed = max(-max_speed, min(max_speed, player_kart_speed)) player_kart_speed *= (1 - friction) player_kart_x += player_kart_speed * math.cos(math.radians(player_kart_angle)) player_kart_y += player_kart_speed * math.sin(math.radians(player_kart_angle)) # Mise à jour des ennemis for enemy in enemies: enemy.move_towards(player_kart_x, player_kart_y) # Dessin screen.fill(TRACK_COLOR) draw_kart(player_kart_x, player_kart_y, player_kart_angle, KART_COLOR) for enemy in enemies: enemy.draw() # Mise à jour de l'écran pygame.display.flip() clock.tick(60) pygame.quit()
Editor is loading...
Leave a Comment