pythonの横シューティングゲーム開発記(敵キャラクターがプレイヤーに弾を撃つ機能の追加方法)

記事
IT・テクノロジー
こんにちは、Pygameを使って簡単なシューティングゲームを作る方法についてご紹介します。今回の目的は、特定の敵キャラクター(enemy1, enemy2, enemy3)に限定してプレイヤーに向けて弾を撃たせる機能を実装することです。

ステップ1: 必要なライブラリのインポート
まずは、ゲーム開発に必要なPygameライブラリをインポートします。これにはゲームのループやイベントの処理、画像や音の管理が含まれます。

python
import pygame
import sys
import random

ステップ2: 敵キャラクターの設定
敵キャラクターの画像と設定を初期化します。ここでは、6つの異なる敵キャラクターの画像を用意し、最初の3つのキャラクターにのみ弾を撃たせる設定を行います。
Space Cave Adventure 2025_02_19 21_53_17.png


enemy_images = [
    pygame.transform.scale(pygame.image.load("assets/image/enemy1.png"), (60, 60)),
    pygame.transform.scale(pygame.image.load("assets/image/enemy2.png"), (60, 60)),
    pygame.transform.scale(pygame.image.load("assets/image/enemy3.png"), (60, 60)),
    pygame.transform.scale(pygame.image.load("assets/image/enemy4.png"), (60, 60)),
    pygame.transform.scale(pygame.image.load("assets/image/enemy5.png"), (60, 60)),
    pygame.transform.scale(pygame.image.load("assets/image/enemy6.png"), (60, 60)),
]

ステップ3: 敵からの攻撃の実装
敵がプレイヤーに弾を撃つ機能を実装します。特定の条件(例えば、タイプが0, 1, 2の敵)でのみ弾を撃つようにします。また、発射される弾の確率を5%に設定して、ゲームのバランスを取ります。


for enemy in enemies[:]:
    enemy["rect"].x -= enemy["speed"]
    if enemy["rect"].x < -50:
        enemies.remove(enemy)
    else:
        screen.blit(enemy["image"], enemy["rect"])
        if enemy["type"] in [0, 1, 2] and random.randint(0, 100) < 5:
            enemy_shoot(enemy)

ステップ4: ゲームのメインループ
ゲームのメインループを設定し、すべてのゲームロジック(敵の更新、弾の発射、ボスの行動など)を繰り返し処理します。また、ゲームオーバーの条件もこのループ内で管理します。

まとめ
このチュートリアルを通じて、特定の敵に限定して攻撃機能を追加する方法を学びました。Pygameを使用することで、簡単にこのような機能を実装でき、カスタマイズも自由自在です。ゲーム開発の入門として、是非試してみてください。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら