Pingpong
Pingpong
def reset(self):
window.blit(self.image, (self.rect.x, self.rect.y))
class Player(GameSprite):
def update_r(self):
keys = key.get_pressed()
if keys[K_UP] and self.rect.y > 5:
self.rect.y -= self.speed
if keys[K_DOWN] and self.rect.y < win_height - 80:
self.rect.y += self.speed
def update_l(self):
keys = key.get_pressed()
if keys[K_w] and self.rect.y > 5:
self.rect.y -= self.speed
if keys[K_s] and self.rect.y < win_height - 80:
self.rect.y += self.speed
#game scene:
back = (200, 255, 255) #background color (background)
win_width = 600
win_height = 500
window = display.set_mode((win_width, win_height))
window.fill(back)
font.init()
font = font.Font(None, 35)
lose1 = font.render('PLAYER 1 LOSE!', True, (180, 0, 0))
lose2 = font.render('PLAYER 2 LOSE!', True, (180, 0, 0))
speed_x = 3
speed_y = 3
while game:
for e in event.get():
if e.type == QUIT:
game = False
if finish != True:
window.fill(back)
racket1.update_l()
racket2.update_r()
ball.rect.x += speed_x
ball.rect.y += speed_y
#if the ball reaches screen edges, change its movement direction
if ball.rect.y > win_height-50 or ball.rect.y < 0:
speed_y *= -1
#if ball flies behind this paddle, display loss condition for player 1
if ball.rect.x < 0:
finish = True
window.blit(lose1, (200, 200))
game_over = True
#if the ball flies behind this paddle, display loss condition for player 2
if ball.rect.x > win_width:
finish = True
window.blit(lose2, (200, 200))
game_over = True
racket1.reset()
racket2.reset()
ball.reset()
display.update()
clock.tick(FPS)