# Kat Prendergast
# 6/15/22
# Two Player Movement in pygame - ball continuously moves in the direction you
#                                 tell it to until you unpress the key

import pygame,sys
from pygame.locals import *

def main():
    pygame.init()
    DISPLAYSURF = pygame.display.set_mode((1000,600))
    pygame.display.set_caption("Two Player!")

    BLACK = pygame.Color(0,0,0)
    PURPLE = pygame.Color(255,0,255)
    BLUE = pygame.Color(0,0,255)

    clock = pygame.time.Clock()

    # Player 1:
    x1 = 300
    y1 = 300
    dx_1 = 0
    dy_1 = 0

    # Player 2:
    x2 = 100
    y2 = 100
    dx_2 = 0
    dy_2 = 0

    while True:

        for event in pygame.event.get():

            if event.type == QUIT:
                pygame.quit()
                sys.exit()

            if event.type == KEYDOWN:
                # Arrow keys control player 1
                if event.key == K_DOWN:
                    dy_1 = 5
                    dx_1 = 0
                elif event.key == K_UP:
                    dy_1 = -5
                    dx_1 = 0
                elif event.key == K_RIGHT:
                    dx_1 = 5
                    dy_1 = 0
                elif event.key == K_LEFT:
                    dx_1 = -5
                    dy_1 = 0
                # WASD keys control player 2
                elif event.key == K_w:
                    dy_2 = -5
                    dx_2 = 0
                elif event.key == K_a:
                    dy_2 = 0
                    dx_2 = -5
                elif event.key == K_s:
                    dx_2 = 0
                    dy_2 = 5
                elif event.key == K_d:
                    dx_2 = 5
                    dy_2 = 0
            if event.type == KEYUP:
                # If player 1 lifts from their key, stop moving
                if event.key == K_DOWN or event.key == K_UP or event.key == K_RIGHT or event.key == K_LEFT:
                    dx_1 = 0
                    dy_1 = 0
                # If player 2 lifts from their key, stop moving
                else:
                    dx_2 = 0
                    dy_2 = 0

        # Move player 1
        x1 += dx_1
        y1 += dy_1

        # Make sure player 1 doesn't go off the screen
        if x1 <= 20:
            x1 = 20
        if x1 >= 980:
            x1 = 980
        if y1 <= 20:
            y1 = 20
        if y1 >= 580:
            y1 = 580

        # Move player 2
        x2 += dx_2
        y2 += dy_2

        # Make sure player 2 doesn't go off the screen
        if x2 <= 20:
            x2 = 20
        if x2 >= 980:
            x2 = 980
        if y2 <= 20:
            y2 = 20
        if y2 >= 580:
            y2 = 580

        DISPLAYSURF.fill(BLACK)
        pygame.draw.circle(DISPLAYSURF, PURPLE, (x1,y1), 20, 0)
        pygame.draw.circle(DISPLAYSURF, BLUE, (x2,y2), 20, 0)
        pygame.display.update()

        clock.tick(60)

main()
