Untitled
unknown
plain_text
3 years ago
2.7 kB
4
Indexable
import pygame
# Define constants
WIDTH = 800
HEIGHT = 600
BALL_RADIUS = 10
PAD_WIDTH = 8
PAD_HEIGHT = 80
PADDLE_SPEED = 5
BALL_SPEED = 5
# Initialize pygame
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Pong")
# Set up game objects
ball_pos = [WIDTH//2, HEIGHT//2]
ball_vel = [BALL_SPEED, BALL_SPEED]
paddle1_pos = HEIGHT//2 - PAD_HEIGHT//2
paddle2_pos = HEIGHT//2 - PAD_HEIGHT//2
score1 = 0
score2 = 0
# Define helper functions
def draw_ball(ball_pos):
pygame.draw.circle(screen, (255, 255, 255), ball_pos, BALL_RADIUS)
def draw_paddle(paddle_pos):
pygame.draw.rect(screen, (255, 255, 255), (0, paddle_pos, PAD_WIDTH, PAD_HEIGHT))
def update_ball(ball_pos, ball_vel):
# Update ball position
ball_pos[0] += ball_vel[0]
ball_pos[1] += ball_vel[1]
# Check for collisions with walls
if ball_pos[1] <= BALL_RADIUS or ball_pos[1] >= HEIGHT - BALL_RADIUS:
ball_vel[1] = -ball_vel[1]
if ball_pos[0] <= PAD_WIDTH + BALL_RADIUS:
if ball_pos[1] >= paddle1_pos and ball_pos[1] <= paddle1_pos + PAD_HEIGHT:
ball_vel[0] = -ball_vel[0]
else:
reset_ball(2)
return
if ball_pos[0] >= WIDTH - PAD_WIDTH - BALL_RADIUS:
if ball_pos[1] >= paddle2_pos and ball_pos[1] <= paddle2_pos + PAD_HEIGHT:
ball_vel[0] = -ball_vel[0]
else:
reset_ball(1)
return
def update_paddle(paddle_pos, direction):
# Update paddle position
if direction == "up":
paddle_pos -= PADDLE_SPEED
elif direction == "down":
paddle_pos += PADDLE_SPEED
# Check for collisions with walls
if paddle_pos < 0:
paddle_pos = 0
elif paddle_pos > HEIGHT - PAD_HEIGHT:
paddle_pos = HEIGHT - PAD_HEIGHT
return paddle_pos
def reset_ball(player):
global ball_pos, ball_vel, score1, score2
ball_pos = [WIDTH//2, HEIGHT//2]
if player == 1:
ball_vel = [-BALL_SPEED, -BALL_SPEED]
score2 += 1
else:
ball_vel = [BALL_SPEED, BALL_SPEED]
score1 += 1
# Game loop
running = True
while running:
# Handle events
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
paddle1_pos = update_paddle(paddle1_pos, "up")
elif event.key == pygame.K_s:
paddle1_pos = update_paddle(paddle1_pos, "down")
elif event.key == pygame.K_UP:
paddle2_pos = update_paddle(paddle2_pos, "up")
elif event.key == pygame.K_DOWN:
paddle2
Editor is loading...