Untitled
unknown
plain_text
a year ago
2.5 kB
4
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