Untitled
import pygame import sys # Initialize pygame pygame.init() # Screen dimensions WIDTH, HEIGHT = 800, 600 # Colors WHITE = (255, 255, 255) BLACK = (0, 0, 0) # Paddle dimensions PADDLE_WIDTH, PADDLE_HEIGHT = 10, 100 # Ball dimensions BALL_SIZE = 15 # Initialize screen screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Pong") # Clock for controlling frame rate clock = pygame.time.Clock() # Paddle positions left_paddle = pygame.Rect(10, (HEIGHT // 2) - (PADDLE_HEIGHT // 2), PADDLE_WIDTH, PADDLE_HEIGHT) right_paddle = pygame.Rect(WIDTH - 20, (HEIGHT // 2) - (PADDLE_HEIGHT // 2), PADDLE_WIDTH, PADDLE_HEIGHT) # Ball position and velocity ball = pygame.Rect(WIDTH // 2, HEIGHT // 2, BALL_SIZE, BALL_SIZE) ball_speed = [4, 4] # Paddle speeds left_paddle_speed = 0 right_paddle_speed = 0 # Game loop while True: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_w: left_paddle_speed = -6 if event.key == pygame.K_s: left_paddle_speed = 6 if event.key == pygame.K_UP: right_paddle_speed = -6 if event.key == pygame.K_DOWN: right_paddle_speed = 6 if event.type == pygame.KEYUP: if event.key in (pygame.K_w, pygame.K_s): left_paddle_speed = 0 if event.key in (pygame.K_UP, pygame.K_DOWN): right_paddle_speed = 0 # Move paddles left_paddle.y += left_paddle_speed right_paddle.y += right_paddle_speed # Prevent paddles from going out of bounds left_paddle.y = max(0, min(HEIGHT - PADDLE_HEIGHT, left_paddle.y)) right_paddle.y = max(0, min(HEIGHT - PADDLE_HEIGHT, right_paddle.y)) # Move ball ball.x += ball_speed[0] ball.y += ball_speed[1] # Ball collision with top and bottom walls if ball.top <= 0 or ball.bottom >= HEIGHT: ball_speed[1] = -ball_speed[1] # Ball collision with paddles if ball.colliderect(left_paddle) or ball.colliderect(right_paddle): ball_speed[0] = -ball_speed[0] # Ball goes out of bounds if ball.left <= 0 or ball.right >= WIDTH: ball.x, ball.y = WIDTH // 2, HEIGHT // 2 ball_speed = [4, 4] # Draw everything screen.fill(BLACK) pygame.draw.rect(screen, WHITE, left_paddle) pygame.draw.rect(screen, WHITE, right_paddle) pygame.draw.ellipse(screen, WHITE, ball) pygame.draw.aaline(screen, WHITE, (WIDTH // 2, 0), (WIDTH // 2, HEIGHT)) # Update the display pygame.display.flip() # Cap the frame rate clock.tick(60)
Leave a Comment