代码启动后立刻关闭
我是一名初学者,正在学习软件开发。我想做一个项目,但我运行这个项目后,它立刻就关闭了,我不知道该怎么解决这个问题。
import pygame
import random
import os
# Ekran boyutları
WIDTH = 800
HEIGHT = 600
# Renkler
WHITE = (255, 255, 255)
RED = (255, 0, 0)
# Oyuncu sınıfı
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((50, 50))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.center = (WIDTH // 2, HEIGHT // 2)
self.health = 3
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
self.rect.x -= 5
if keys[pygame.K_RIGHT]:
self.rect.x += 5
if keys[pygame.K_UP]:
self.rect.y -= 5
if keys[pygame.K_DOWN]:
self.rect.y += 5
# Ekran dışına çıkmasını engelle
self.rect.x = max(0, min(self.rect.x, WIDTH - self.rect.width))
self.rect.y = max(0, min(self.rect.y, HEIGHT - self.rect.height))
# Düşman sınıfı
class Enemy(pygame.sprite.Sprite):
def __init__(self, game_folder):
super().__init__()
self.image = pygame.image.load(os.path.join(game_folder, "Enemy.png")).convert() # enemy.png resmini yükle
self.image.set_colorkey(WHITE)
self.rect = self.image.get_rect()
self.rect.x = random.randrange(WIDTH - self.rect.width)
self.rect.y = random.randrange(HEIGHT - self.rect.height)
# Oyun dosyasının bulunduğu klasör
game_folder = os.path.abspath(os.path.dirname(__file__))
# Kalp resmini yükleyen fonksiyon
def load_image(name, width, height):
fullname = os.path.join(game_folder, name) # Oyun klasöründe doğrudan arama
image = pygame.image.load(fullname).convert()
image.set_colorkey(WHITE)
return image
# Oyunu başlatma
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Space War")
clock = pygame.time.Clock()
all_sprites = pygame.sprite.Group()
enemies = pygame.sprite.Group()
player = Player()
all_sprites.add(player)
for _ in range(8):
enemy = Enemy(game_folder)
all_sprites.add(enemy)
enemies.add(enemy)
# Kalp resmini yükleme
heart_image = load_image('Heart.png', 25, 25)
# Oyun döngüsü
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
all_sprites.update()
# Düşmanlarla çarpışma kontrolü
hits = pygame.sprite.spritecollide(player, enemies, True)
for hit in hits:
player.health -= 1
if player.health <= 0:
running = False
enemy = Enemy(game_folder)
all_sprites.add(enemy)
enemies.add(enemy)
screen.fill((0, 0, 0)) # Siyah renkle arka planı doldur
all_sprites.draw(screen)
# Kalpleri çiz
heart_spacing = 40 # Kalpler arasındaki boşluğu belirle
max_hearts_per_row = (WIDTH - 20) // heart_spacing # Bir satırda maksimum kaç kalp sığabileceğini hesapla
for i in range(player.health):
row = i // max_hearts_per_row # Kaçıncı satırda olduğumuzu belirle
col = i % max_hearts_per_row # Kaçıncı sütunda olduğumuzu belirle
screen.blit(heart_image, (10 + col * heart_spacing, 10 + row * heart_spacing))
pygame.display.flip()
clock.tick(60)
pygame.quit()
我尝试做一个游戏,但我想用 .png 格式来绘制敌人,而不是直接画出来。更新代码后,它就不再打开了。请帮我解决这个问题。
0 个回答
暂无回答