Skip to main content

import pygame
import random
import sys

# Initialize Pygame
pygame.init()

# Screen dimensions
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(“Shooter”)

# Colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)

# Clock
clock = pygame.time.Clock()

# Player
player_size = 50
player_pos = [WIDTH // 2, HEIGHT – 2 * player_size] player_speed = 10

# Enemy
enemy_size = 50
enemy_pos = [random.randint(0, WIDTH – enemy_size), 0] enemy_speed = 10

# Bullet
bullet_size = 5
bullet_speed = 15
bullets = []

# Score
score = 0
font = pygame.font.Font(None, 36)

def draw_player():
pygame.draw.rect(screen, WHITE, (*player_pos, player_size, player_size))

def draw_enemy():
pygame.draw.rect(screen, RED, (*enemy_pos, enemy_size, enemy_size))

def draw_bullets():
for bullet in bullets:
pygame.draw.rect(screen, WHITE, (*bullet, bullet_size, bullet_size))

def update_bullets():
global bullets
for bullet in bullets:
bullet[1] -= bullet_speed
bullets = [bullet for bullet in bullets if bullet[1] > 0]

def detect_collision(player_pos, enemy_pos):
px, py = player_pos
ex, ey = enemy_pos
return (
ex < px < ex + enemy_size and ey < py < ey + enemy_size or px < ex < px + player_size and py < ey < py + player_size ) # Main game loop running = True while running: screen.fill(BLACK) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullets.append([player_pos[0] + player_size // 2, player_pos[1]]) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player_pos[0] > 0:
player_pos[0] -= player_speed
if keys[pygame.K_RIGHT] and player_pos[0] < WIDTH - player_size: player_pos[0] += player_speed draw_player() draw_enemy() draw_bullets() # Update enemy enemy_pos[1] += enemy_speed if enemy_pos[1] > HEIGHT:
enemy_pos = [random.randint(0, WIDTH – enemy_size), 0] score -= 1

# Update bullets
update_bullets()

# Check collisions
if detect_collision(player_pos, enemy_pos):
running = False # Game over
for bullet in bullets:
if detect_collision(bullet, enemy_pos):
bullets.remove(bullet)
enemy_pos = [random.randint(0, WIDTH – enemy_size), 0] score += 1

# Display score
score_text = font.render(f”Score: {score}”, True, WHITE)
screen.blit(score_text, (10, 10))

pygame.display.flip()
clock.tick(30)

pygame.quit()
sys.exit()