Untitled
unknown
plain_text
2 years ago
2.7 kB
5
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