Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import random
- import time
- # Initialize Pygame
- pygame.init()
- # Screen dimensions
- screen_width = 800
- screen_height = 600
- screen = pygame.display.set_mode((screen_width, screen_height))
- pygame.display.set_caption("Solo Pong")
- # Colors
- white = (255, 255, 255)
- black = (0, 0, 0)
- # Ball properties
- ball_size = 10
- ball_pos = [screen_width // 2, screen_height // 2]
- ball_vel = [0.03, 0.03]
- # Paddle properties
- paddle_width = 15
- paddle_height = 100
- user_paddle_pos = [screen_width - paddle_width - 10, screen_height // 2 - paddle_height // 2]
- ai_paddle_pos = [10, screen_height // 2 - paddle_height // 2]
- paddle_vel = .05
- # Function to draw the ball
- def draw_ball(screen, ball_pos, ball_size):
- pygame.draw.circle(screen, white, ball_pos, ball_size)
- # Function to draw the paddles
- def draw_paddle(screen, paddle_pos, paddle_width, paddle_height):
- pygame.draw.rect(screen, white, (paddle_pos[0], paddle_pos[1], paddle_width, paddle_height))
- # Function to update the AI paddle's position
- def ai_paddle(ai_paddle_pos, ball_pos):
- if ai_paddle_pos[1] < ball_pos[1]:
- ai_paddle_pos[1] += paddle_vel
- elif ai_paddle_pos[1] > ball_pos[1]:
- ai_paddle_pos[1] -= paddle_vel
- # Function to handle user input
- def handle_input():
- keys = pygame.key.get_pressed()
- if keys[pygame.K_UP] and user_paddle_pos[1] > 0:
- user_paddle_pos[1] -= paddle_vel
- elif keys[pygame.K_DOWN] and user_paddle_pos[1] + paddle_height < screen_height:
- user_paddle_pos[1] += paddle_vel
- # Function to update the ball's position
- def update_ball(ball_pos, ball_vel):
- ball_pos[0] += ball_vel[0]
- ball_pos[1] += ball_vel[1]
- if ball_pos[1] <= 0 or ball_pos[1] >= screen_height - ball_size:
- ball_vel[1] = -ball_vel[1]
- if ball_pos[0] <= 0:
- ball_vel[0] = -ball_vel[0]
- elif ball_pos[0] >= screen_width - ball_size:
- if ball_pos[1] > user_paddle_pos[1] and ball_pos[1] < user_paddle_pos[1] + paddle_height:
- ball_vel[0] = -ball_vel[0] * 1
- ball_vel[1] += 0.01
- else:
- return False
- if ball_pos[0] <= ai_paddle_pos[0] + paddle_width and ball_pos[1] > ai_paddle_pos[1] and ball_pos[1] < ai_paddle_pos[1] + paddle_height:
- ball_vel[0] = -ball_vel[0] * 1
- ball_vel[1] += 0.0001
- return True
- # Main game loop
- running = True
- while running:
- screen.fill(black)
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- running = False
- draw_ball(screen, ball_pos, ball_size)
- draw_paddle(screen, user_paddle_pos, paddle_width, paddle_height)
- draw_paddle(screen, ai_paddle_pos, paddle_width, paddle_height)
- handle_input()
- ai_paddle(ai_paddle_pos, ball_pos)
- if not update_ball(ball_pos, ball_vel):
- running = False
- pygame.display.flip()
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement