In this 2 player game, you and another player fight as red or blue blocks. You control the red block with WASD keys and the blue block with arrow keys. Red clicks Z to shoot and blue clicks L to shoot. There is a 3-second delay after each shot.
Click here for the Demonstration.
In order to play, copy the code below into your Python file and start the code. You control red with WASD and use Z to shoot, and you control blue with arrow keys and L to shoot.
You can copy the code for FREE!:
import pygame import sys import time # Initialize Pygame pygame.init() # Set up the screen width, height = 800, 600 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("Red VS Blue") # Load the colosseum image colosseum_image = pygame.image.load("colosseum.jpg") # Replace "colosseum.jpg" with the actual file name colosseum_image = pygame.transform.scale(colosseum_image, (width, height)) # Set up the players player1 = pygame.Rect(50, height // 2 - 25, 50, 50) player2 = pygame.Rect(width - 100, height // 2 - 25, 50, 50) # Set up the lasers red_lasers = [] blue_lasers = [] # Set up colors red = (255, 0, 0) blue = (0, 0, 255) # Set up fonts font = pygame.font.Font(None, 36) # Set up the clock clock = pygame.time.Clock() # Set up the reload delay reload_delay = 3000 # in milliseconds last_shot_time_red = pygame.time.get_ticks() last_shot_time_blue = pygame.time.get_ticks() # Main game loop game_over = False winner = None while not game_over: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Handle shooting if event.type == pygame.KEYDOWN: current_time = pygame.time.get_ticks() if event.key == pygame.K_z and current_time - last_shot_time_red >= reload_delay: last_shot_time_red = current_time red_lasers.append(pygame.Rect(player1.x + 50, player1.y + 20, 15, 5)) elif event.key == pygame.K_l and current_time - last_shot_time_blue >= reload_delay: last_shot_time_blue = current_time blue_lasers.append(pygame.Rect(player2.x - 15, player2.y + 20, 15, 5)) # Move players keys = pygame.key.get_pressed() if keys[pygame.K_a]: player1.x -= 5 if keys[pygame.K_d]: player1.x += 5 if keys[pygame.K_w]: player1.y -= 5 if keys[pygame.K_s]: player1.y += 5 if keys[pygame.K_LEFT]: player2.x -= 5 if keys[pygame.K_RIGHT]: player2.x += 5 if keys[pygame.K_UP]: player2.y -= 5 if keys[pygame.K_DOWN]: player2.y += 5 # Move lasers red_lasers = [laser.move(8, 0) for laser in red_lasers] blue_lasers = [laser.move(-8, 0) for laser in blue_lasers] # Check for collisions for laser in red_lasers: if player2.colliderect(laser): winner = "Red Player" game_over = True break for laser in blue_lasers: if player1.colliderect(laser): winner = "Blue Player" game_over = True break # Remove eliminated opponent if winner == "Red Player": player2 = pygame.Rect(0, 0, 0, 0) elif winner == "Blue Player": player1 = pygame.Rect(0, 0, 0, 0) # Draw everything screen.blit(colosseum_image, (0, 0)) # Draw the colosseum image as the background pygame.draw.rect(screen, red, player1) pygame.draw.rect(screen, blue, player2) # Draw red lasers for laser in red_lasers: pygame.draw.polygon(screen, red, [(laser.left, laser.centery), (laser.right, laser.top), (laser.right, laser.bottom)]) # Draw blue lasers for laser in blue_lasers: pygame.draw.polygon(screen, blue, [(laser.right, laser.centery), (laser.left, laser.top), (laser.left, laser.bottom)]) # Update the display pygame.display.flip() # Cap the frame rate clock.tick(30) # Display the victory screen screen.fill((255, 255, 255)) text = font.render(f"{winner} wins!", True, (0, 0, 0)) text_rect = text.get_rect(center=(width // 2, height // 2)) screen.blit(text, text_rect) pygame.display.flip() # Wait for a few seconds before quitting time.sleep(5) pygame.quit() sys.exit()