Untitled
unknown
plain_text
3 years ago
1.9 kB
4
Indexable
import pygame
# initialize Pygame
pygame.init()
# set up the game window
width = 800
height = 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Pong")
# set up game objects
ball = pygame.Rect(width/2 - 15, height/2 - 15, 30, 30)
player1 = pygame.Rect(50, height/2 - 70, 20, 140)
player2 = pygame.Rect(width - 70, height/2 - 70, 20, 140)
bg_color = pygame.Color("grey12")
light_grey = (200, 200, 200)
ball_speed_x = 7
ball_speed_y = 7
player_speed = 0
# set up the game loop
run = True
clock = pygame.time.Clock()
while run:
# handle events
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
player_speed -= 7
if event.key == pygame.K_DOWN:
player_speed += 7
if event.type == pygame.KEYUP:
if event.key == pygame.K_UP:
player_speed += 7
if event.key == pygame.K_DOWN:
player_speed -= 7
# move game objects
ball.x += ball_speed_x
ball.y += ball_speed_y
player1.y += player_speed
# handle collisions
if ball.top <= 0 or ball.bottom >= height:
ball_speed_y *= -1
if ball.left <= player1.right and ball.right >= player1.left and ball_speed_x < 0:
ball_speed_x *= -1
if ball.left <= player2.right and ball.right >= player2.left and ball_speed_x > 0:
ball_speed_x *= -1
if ball.left <= 0 or ball.right >= width:
ball_restart()
# draw game objects
screen.fill(bg_color)
pygame.draw.rect(screen, light_grey, player1)
pygame.draw.rect(screen, light_grey, player2)
pygame.draw.ellipse(screen, light_grey, ball)
pygame.draw.aaline(screen, light_grey, (width/2, 0), (width/2, height))
# update the screen
pygame.display.flip()
clock.tick(60)
# quit Pygame
pygame.quit()
Editor is loading...