Untitled
unknown
plain_text
9 months ago
2.0 kB
5
Indexable
import pygame
import random
# Initialize pygame
pygame.init()
# Game constants
WIDTH, HEIGHT = 800, 600
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
PLAYER_SPEED = 5
BULLET_SPEED = 7
ENEMY_SPEED = 2
# Create screen
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("2D Shooter")
# Load player
player = pygame.Rect(WIDTH // 2 - 25, HEIGHT - 60, 50, 50)
bullets = []
enemies = []
# Game loop
running = True
clock = pygame.time.Clock()
while running:
screen.fill(BLACK)
# Event handling
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(pygame.Rect(player.x + 20, player.y, 10, 20))
# 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.width:
player.x += PLAYER_SPEED
# Update bullets
for bullet in bullets[:]:
bullet.y -= BULLET_SPEED
if bullet.y < 0:
bullets.remove(bullet)
# Spawn enemies
if random.randint(1, 40) == 1:
enemies.append(pygame.Rect(random.randint(0, WIDTH-40), 0, 40, 40))
# Move enemies
for enemy in enemies[:]:
enemy.y += ENEMY_SPEED
if enemy.y > HEIGHT:
enemies.remove(enemy)
# Collision detection
for bullet in bullets[:]:
for enemy in enemies[:]:
if bullet.colliderect(enemy):
bullets.remove(bullet)
enemies.remove(enemy)
break
# Draw player, bullets, and enemies
pygame.draw.rect(screen, WHITE, player)
for bullet in bullets:
pygame.draw.rect(screen, RED, bullet)
for enemy in enemies:
pygame.draw.rect(screen, RED, enemy)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Editor is loading...
Leave a Comment