ChatGPTでブロック崩しゲームを作ってみた

ChatGPTを使えば、ゲームが簡単に作れるということなので、簡単なゲームを作ってみることにしました。

簡単なゲームは何がよいかな?と思った時に、最初に思い付いたのが「ブロックくずし」ゲームです。

では、ChatGPTを開いて、作っていきます。

ChatGPTとのやりとり開始!

私: 「AIを使って簡単なゲームを作りたい。」

ChatGPT: 「どんなゲームを作りたいですか?例えば、じゃんけんゲーム、迷路ゲーム、ブロック崩しゲームなど、色々作れますよ!」

私: 「ブロック崩しゲームは作れますか?」

ChatGPT: 「PythonのPygameを使ってブロックくずしゲームを作成しましょう。以下の要素を含めます」

  • ボール(動く、壁に当たると反射)
  • パドル(プレイヤーが操作)
  • ブロック(ボールが当たると消える)
  • ゲームオーバー・クリア判定(ブロックをすべて壊す or ボールが下に落ちる)

Pygameのインストール方法

ChatGPT:

  • Pythonをインストールするには?
  • 公式サイトにアクセス
    👉 Python公式サイト
  • 最新バージョンをダウンロード
  • インストールして実行
  • コマンドプロンプトで動作確認
>python --version

インストール手順は省略させていただきます。
公式サイトを参照ください。


私: 「コマンドプロンプトって何?」

ChatGPT:

コマンドプロンプトとは?
コマンドプロンプト(Command Prompt, cmd)は、Windowsに標準で搭載されているテキストベースの操作ツールです。
Windowsの操作をキーボードでコマンド入力して実行することができます。

📌 「黒い画面で文字を入力するツール」と思えばOK!

コマンドプロンプトの使い方
① コマンドプロンプトを開く方法
Windowsキー + R を押す
cmd と入力して Enterキー
黒い画面(コマンドプロンプト)が開く!

Pygameのインストール

まずは、Pythonが正しくインストールされているか確認します。

① コマンドプロンプトを開く

  1. Windowsキー + R を押す
  2. cmd と入力
  3. Enterキー を押す
  4. 黒い画面(コマンドプロンプト)が開く! 🎉

② Pythonがインストールされているか確認

次のコマンドを実行します:

>python --version

③ Pygameをインストール

Pythonが正しくインストールされている場合、次のコマンドでPygameをインストールします。

>pip install pygame

④ インストール成功の確認

Pythonを起動し、Pygameのバージョンを確認します。

>python

Pythonの対話モード (>>> の表示) に切り替わったら、以下のコードを入力:

>>>import pygame
>>>print("Pygame version:", pygame.__version__)

成功すると、以下のように表示されます。

Pygame version: 2.6.1

私: 「Pygameがちゃんとインストールされた!」

ChatGPTがプログラミング作成

ChatGPT: 次に、ブロック崩しゲームを動かしてみましょう!
Pygameでブロックくずしゲームを実装
以下のコードを breakout.py として保存し、実行してください。

import pygame
import random

# 画面サイズ
WIDTH, HEIGHT = 800, 600

# 色の定義
WHITE = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
GREEN = (0, 255, 0)

# Pygameの初期化
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("ブロック崩し")
clock = pygame.time.Clock()

# パドルのクラス
class Paddle:
def __init__(self):
self.rect = pygame.Rect(WIDTH // 2 - 60, HEIGHT - 30, 120, 10)

def move(self, keys):
if keys[pygame.K_LEFT] and self.rect.left > 0:
self.rect.x -= 6
if keys[pygame.K_RIGHT] and self.rect.right < WIDTH:
self.rect.x += 6

def draw(self):
pygame.draw.rect(screen, BLUE, self.rect)

# ボールのクラス
class Ball:
def __init__(self):
self.rect = pygame.Rect(WIDTH // 2, HEIGHT // 2, 10, 10)
self.dx = 0
self.dy = 0
self.launched = False # 発射状態を管理

def move(self, paddle, blocks, keys):
if not self.launched: # まだ発射していない
self.rect.x = paddle.rect.centerx - 5
self.rect.y = paddle.rect.top - 10
if keys[pygame.K_SPACE]: # スペースキーで発射
self.dx = random.choice([-4, 4])
self.dy = -4
self.launched = True
else:
self.rect.x += self.dx
self.rect.y += self.dy

# 壁に当たると跳ね返る
if self.rect.left <= 0 or self.rect.right >= WIDTH:
self.dx = -self.dx
if self.rect.top <= 0:
self.dy = -self.dy

# パドルに当たると跳ね返る
if self.rect.colliderect(paddle.rect):
self.dy = -self.dy

# ブロックに当たると消える
for block in blocks[:]:
if self.rect.colliderect(block):
blocks.remove(block)
self.dy = -self.dy
break

# ボールが画面外に落ちたらリセット
if self.rect.top > HEIGHT:
self.reset()

def reset(self):
"""ボールを中央に戻して、パドルの上に乗せる"""
self.rect.x = WIDTH // 2
self.rect.y = HEIGHT // 2
self.dx = 0
self.dy = 0
self.launched = False # 発射を待つ状態に戻す

def draw(self):
pygame.draw.ellipse(screen, RED, self.rect) # ボールを赤い円で描画

# ブロックの作成
blocks = [pygame.Rect(100 + i * 80, 50 + j * 30, 70, 20) for i in range(8) for j in range(5)]

# パドルとボールのインスタンス
paddle = Paddle()
ball = Ball()

# ゲームループ
running = True
while running:
screen.fill(WHITE) # 画面を白く塗りつぶす
keys = pygame.key.get_pressed()

# イベント処理
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# 各オブジェクトの動作処理
paddle.move(keys)
ball.move(paddle, blocks, keys) # スペースキーの入力を追加

# 各オブジェクトの描画処理
paddle.draw()
ball.draw()
for block in blocks:
pygame.draw.rect(screen, GREEN, block)

pygame.display.flip()
clock.tick(60)

pygame.quit()

メモ帳でプログラミングファイル breakout.py を作成する

① メモ帳を開く

  1. Windowsのメニューからメモ帳アプリを開きます。
  2. 新しいファイルを作成 します。

② コードをコピー&ペースト

上記のプログラムコードをそのままメモ帳に貼り付けファイル名をbreakout.pyと保存する

コマンドプロンプトでbreakout.pyを実行

  1. コマンドプロンプトを開く
  2. breakout.py を保存したフォルダに移動
  3. breakout.py を実行
>cd フォルダのパス
>python breakout.py

ChatGPTで作ったゲームの完成

以下の様なウィンドウが開いて完成!!

chatgpt+パイソンで作ったブロック崩しゲーム

それでは実際に動くかプレイ!
動きました!!

すごいですね。ブロック崩しゲーム完成まで所要時間約30分です!

chatgpt+パイソンで作ったブロック崩しゲームPLAY中

最後に

ChatGPTを使って、ゲームを作るのがこんなに簡単でこんなに早く作れるとは思ってもみなかったです。

💡 はじめてのゲーム開発をChatGPTと一緒に進めた流れ

  1. ChatGPTに相談 → ゲームの設計
  2. Python + Pygameをセットアップ
  3. メモ帳で breakout.py を作成
  4. コマンドプロンプトで実行
  5. ゲーム完成!

違うゲームも作ってみたいと思います。

コメント

タイトルとURLをコピーしました