import pygame
import sys
import random
# Initialize Pygame
pygame.init()
# Screen dimensions
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Simple Shooter Game")
# Colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
# Player
player_size = 50
player_x = SCREEN_WIDTH // 2 - player_size // 2
player_y = SCREEN_HEIGHT - player_size - 10
player_speed = 5
# Enemy
enemy_size = 40
enemy_x = random.randint(0, SCREEN_WIDTH - enemy_size)
enemy_y = random.randint(0, SCREEN_HEIGHT // 2)
enemy_speed = 3
# Bullet
bullet_size = 5
bullet_x = -1
bullet_y = -1
bullet_speed = 7
bullet_state = "ready" # "ready" or "fire"
# Score
score = 0
font = pygame.font.Font(None, 32)
# Game loop
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and bullet_state == "ready":
bullet_x = player_x + player_size // 2
bullet_y = player_y
bullet_state = "fire"
# Player movement
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < SCREEN_WIDTH - player_size:
player_x += player_speed
# Bullet movement
if bullet_state == "fire":
bullet_y -= bullet_speed
if bullet_y < 0:
bullet_state = "ready"
screen.fill((0, 255, 0)) # Green trail for bullet
# Enemy movement
enemy_y += enemy_speed
if enemy_y > SCREEN_HEIGHT:
enemy_y = 0
enemy_x = random.randint(0, SCREEN_WIDTH - enemy_size)
# Collision detection
if (bullet_x > enemy_x and bullet_x < enemy_x + enemy_size and
bullet_y > enemy_y and bullet_y < enemy_y + enemy_size):
score += 1
bullet_state = "ready"
enemy_y = 0
enemy_x = random.randint(0, SCREEN_WIDTH - enemy_size)
# Draw everything
screen.fill(BLACK)
pygame.draw.rect(screen, BLUE, (player_x, player_y, player_size, player_size))
pygame.draw.rect(screen, RED, (enemy_x, enemy_y, enemy_size, enemy_size))
if bullet_state == "fire":
pygame.draw.rect(screen, WHITE, (bullet_x, bullet_y, bullet_size, bullet_size))
# Score display
score_text = font.render(f"Score: {score}", True, WHITE)
screen.blit(score_text, (10, 10))
pygame.display.flip()
clock.tick(60)
pygame.quit()
sys.exit()