Untitled

 avatar
unknown
plain_text
5 months ago
2.5 kB
3
Indexable
import pygame
import random

# Initialize Pygame
pygame.init()

# Screen dimensions
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Simple Shooting Game")

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

# Clock
clock = pygame.time.Clock()

# Player settings
player_size = 50
player_x = WIDTH // 2
player_y = HEIGHT - player_size - 10
player_speed = 5

# Bullet settings
bullets = []
bullet_speed = -7
bullet_size = 10

# Enemy settings
enemies = []
enemy_size = 50
enemy_speed = 3
spawn_rate = 30  # Frames between enemy spawns

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

# Game loop
running = True
frame_count = 0
while running:
    screen.fill(BLACK)

    # Check events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 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 < WIDTH - player_size:
        player_x += player_speed
    if keys[pygame.K_SPACE]:
        bullets.append([player_x + player_size // 2, player_y])

    # Update bullets
    for bullet in bullets[:]:
        bullet[1] += bullet_speed
        if bullet[1] < 0:
            bullets.remove(bullet)
    
    # Update enemies
    if frame_count % spawn_rate == 0:
        enemies.append([random.randint(0, WIDTH - enemy_size), 0])
    for enemy in enemies[:]:
        enemy[1] += enemy_speed
        if enemy[1] > HEIGHT:
            enemies.remove(enemy)
        for bullet in bullets[:]:
            if (bullet[0] > enemy[0] and bullet[0] < enemy[0] + enemy_size) and \
               (bullet[1] > enemy[1] and bullet[1] < enemy[1] + enemy_size):
                enemies.remove(enemy)
                bullets.remove(bullet)
                score += 1

    # Draw player
    pygame.draw.rect(screen, BLUE, (player_x, player_y, player_size, player_size))

    # Draw bullets
    for bullet in bullets:
        pygame.draw.rect(screen, WHITE, (bullet[0], bullet[1], bullet_size, bullet_size))

    # Draw enemies
    for enemy in enemies:
        pygame.draw.rect(screen, RED, (enemy[0], enemy[1], enemy_size, enemy_size))

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

    # Update display
    pygame.display.flip()
    clock.tick(30)
    frame_count += 1

pygame.quit()
Editor is loading...
Leave a Comment