Untitled
unknown
plain_text
2 years ago
2.2 kB
5
Indexable
import pygame
from pygame.locals import *
# Initialize Pygame
pygame.init()
# Set up the game window
WIDTH = 800
HEIGHT = 400
WINDOW = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Ping Pong Game")
# Set up colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
# Set up the game clock
clock = pygame.time.Clock()
# Set up the paddles
PADDLE_WIDTH = 10
PADDLE_HEIGHT = 60
PADDLE_SPEED = 5
player_paddle = pygame.Rect(0, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)
opponent_paddle = pygame.Rect(WIDTH - PADDLE_WIDTH, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)
# Set up the ball
BALL_RADIUS = 10
BALL_SPEED_X = 3
BALL_SPEED_Y = 3
ball = pygame.Rect(WIDTH // 2 - BALL_RADIUS // 2, HEIGHT // 2 - BALL_RADIUS // 2, BALL_RADIUS, BALL_RADIUS)
ball_velocity = pygame.Vector2(BALL_SPEED_X, BALL_SPEED_Y)
# Set up game variables
score_player = 0
score_opponent = 0
font = pygame.font.Font(None, 36)
# Game loop
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
# Move the paddles
keys = pygame.key.get_pressed()
if keys[K_w] and player_paddle.top > 0:
player_paddle.y -= PADDLE_SPEED
if keys[K_s] and player_paddle.bottom < HEIGHT:
player_paddle.y += PADDLE_SPEED
if keys[K_UP] and opponent_paddle.top > 0:
opponent_paddle.y -= PADDLE_SPEED
if keys[K_DOWN] and opponent_paddle.bottom < HEIGHT:
opponent_paddle.y += PADDLE_SPEED
# Update ball position
ball.x += ball_velocity.x
ball.y += ball_velocity.y
# Check for collisions with paddles
if ball.colliderect(player_paddle) or ball.colliderect(opponent_paddle):
ball_velocity.x *= -1
# Check for collisions with walls
if ball.top <= 0 or ball.bottom >= HEIGHT:
ball_velocity.y *= -1
# Check if the ball goes out of bounds
if ball.left <= 0:
score_opponent += 1
ball_velocity.x *= -1
elif ball.right >= WIDTH:
score_player += 1
ball_velocity.x *= -1
# Clear the window
WINDOW.fill(BLACK)
# Draw the paddles and ball
pygame.draw.rect(WINDOW, WHITE, player_paddle)
Editor is loading...