Untitled

 avatar
unknown
plain_text
a year ago
2.7 kB
3
Indexable
import pygame
import random
import sys

# Initialize Pygame
pygame.init()

# Set up the screen
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Shooting Game")

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

# Player
player_img = pygame.image.load("player.png")
player_img = pygame.transform.scale(player_img, (50, 50))
player_rect = player_img.get_rect()
player_rect.centerx = WIDTH // 2
player_rect.bottom = HEIGHT - 10
PLAYER_SPEED = 5

# Bullet
bullet_img = pygame.image.load("bullet.png")
bullet_img = pygame.transform.scale(bullet_img, (10, 30))
bullets = []
BULLET_SPEED = -10

# Enemy
enemy_img = pygame.image.load("enemy.png")
enemy_img = pygame.transform.scale(enemy_img, (50, 50))
enemies = []
ENEMY_SPEED = 3
ENEMY_SPAWN_RATE = 60  # Spawn new enemy every 60 frames

# Fonts
font = pygame.font.Font(None, 36)

# Game variables
score = 0

# Game loop
running = True
clock = pygame.time.Clock()

while running:
    screen.fill(WHITE)

    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                bullet_rect = bullet_img.get_rect()
                bullet_rect.centerx = player_rect.centerx
                bullet_rect.bottom = player_rect.top
                bullets.append(bullet_rect)

    # Move player
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player_rect.x -= PLAYER_SPEED
    if keys[pygame.K_RIGHT]:
        player_rect.x += PLAYER_SPEED

    # Spawn enemies
    if random.randint(0, ENEMY_SPAWN_RATE) == 0:
        enemy_rect = enemy_img.get_rect()
        enemy_rect.x = random.randint(0, WIDTH - enemy_rect.width)
        enemy_rect.y = -enemy_rect.height
        enemies.append(enemy_rect)

    # Move and draw bullets
    for bullet in bullets:
        bullet.y += BULLET_SPEED
        screen.blit(bullet_img, bullet)

    # Move and draw enemies
    for enemy in enemies:
        enemy.y += ENEMY_SPEED
        screen.blit(enemy_img, enemy)

    # Collision detection
    for bullet in bullets[:]:
        for enemy in enemies[:]:
            if bullet.colliderect(enemy):
                bullets.remove(bullet)
                enemies.remove(enemy)
                score += 1

    # Draw player
    screen.blit(player_img, player_rect)

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

    # Update the display
    pygame.display.flip()

    # Cap the frame rate
    clock.tick(60)

# Quit Pygame
pygame.quit()
sys.exit()
Editor is loading...
Leave a Comment