import pygame import random # 初期化 pygame.init() # 画面の設定 WIDTH, HEIGHT = 480, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Shooting Game") # 色の定義 WHITE = (255, 255, 255) # フォントの定義 font = pygame.font.Font(None, 36) # プレイヤーの初期化 player_image = pygame.image.load("player.png") player_rect = player_image.get_rect() player_rect.centerx = WIDTH / 2 player_rect.bottom = HEIGHT - 10 player_speed = 5 # 敵機の初期化 enemy_image = pygame.image.load("enemy.png") enemy_rect = enemy_image.get_rect() enemy_rect.centerx = random.randint(0, WIDTH) enemy_rect.bottom = 0 enemy_speed = 5 # 敵機の弾丸の初期化 enemy_bullet_image = pygame.image.load("enemy_bullet.png") enemy_bullet_rect = enemy_bullet_image.get_rect() enemy_bullet_rect.centerx = enemy_rect.centerx enemy_bullet_rect.top = enemy_rect.bottom enemy_bullet_speed = 10 enemy_bullet_state = "ready" # 弾丸の初期化 bullet_image = pygame.image.load("bullet.png") bullet_rect = bullet_image.get_rect() bullet_rect.centerx = player_rect.centerx bullet_rect.bottom = player_rect.top bullet_speed = 10 bullet_state = "ready" # 効果音の初期化 pygame.mixer.music.load("background.mp3") pygame.mixer.music.set_volume(0.5) bullet_sound = pygame.mixer.Sound("bullet.wav") bullet_sound.set_volume(0.5) explosion_sound = pygame.mixer.Sound("explosion.wav") explosion_sound.set_volume(0.5) # メインループ running = True while running: # イベント処理 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 背景の描画 screen.fill(WHITE) # プレイヤーの描画 screen.blit(player_image, player_rect) # 敵機の描画 screen.blit(enemy_image, enemy_rect) # 敵機の弾丸の描画 if enemy_bullet_state == "fire": screen.blit(enemy_bullet_image, enemy_bullet_rect) # 弾丸の描画 if bullet_state == "fire": screen.blit(bullet_image, bullet_rect) # キー入力の取得とプレイヤーの移動 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 # 敵機の移動 enemy_rect.bottom += enemy_speed if enemy_rect.bottom > HEIGHT: enemy_rect.centerx = random.randint(0, WIDTH)