mirror of
https://github.com/OpenBMB/ChatDev.git
synced 2024-09-18 21:57:07 +03:00
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
'''
|
|
This is the main file of the 2D horizontal shooting RPG game.
|
|
'''
|
|
import pygame
|
|
from player import Player
|
|
from enemy import Enemy
|
|
from projectile import Projectile
|
|
# Initialize the game
|
|
pygame.init()
|
|
# Set up the game window
|
|
window_width = 800
|
|
window_height = 600
|
|
window = pygame.display.set_mode((window_width, window_height))
|
|
pygame.display.set_caption("2D Shooting RPG Game")
|
|
# Create the player object
|
|
player = Player(window_width // 2, window_height - 50)
|
|
# Create enemy objects
|
|
enemies = []
|
|
for i in range(5):
|
|
enemy = Enemy()
|
|
enemies.append(enemy)
|
|
# Create projectile objects
|
|
projectiles = []
|
|
# Game loop
|
|
running = True
|
|
while running:
|
|
for event in pygame.event.get():
|
|
if event.type == pygame.QUIT:
|
|
running = False
|
|
if event.type == pygame.KEYDOWN:
|
|
if event.key == pygame.K_SPACE:
|
|
projectile = Projectile(player.x + player.width // 2 - 5, player.y)
|
|
projectiles.append(projectile)
|
|
# Update player and enemies
|
|
player.update()
|
|
for enemy in enemies:
|
|
enemy.update()
|
|
# Update projectiles
|
|
for projectile in projectiles:
|
|
projectile.update()
|
|
# Check for collision between projectiles and enemies
|
|
for projectile in projectiles:
|
|
for enemy in enemies:
|
|
if projectile.x < enemy.x + enemy.width and projectile.x + projectile.width > enemy.x and \
|
|
projectile.y < enemy.y + enemy.height and projectile.y + projectile.height > enemy.y:
|
|
projectiles.remove(projectile)
|
|
enemies.remove(enemy)
|
|
# Draw the game objects
|
|
window.fill((0, 0, 0))
|
|
player.draw(window)
|
|
for enemy in enemies:
|
|
enemy.draw(window)
|
|
for projectile in projectiles:
|
|
projectile.draw(window)
|
|
pygame.display.update()
|
|
# Quit the game
|
|
pygame.quit() |