はじめに
amazonQでゲームを作成するとTシャツがもらえるキャンペーンをやっていたのでゲームを作成しました。記事は書く予定がなかったのですが、SNSの投稿だけ行ったところ、発想の連絡が一向に来ないので、記事も書きます。
キャンペーンについて
こちらのキャンペーンではamazonQでゲームを作成し、その詳細についてSNSなどに投稿するとTシャツがプレゼントされるというものです。
Tシャツにひかれて挑戦してみました。
環境構築
こちらの記事を参考にdocker上で環境構築をしてゲームを作成しました。
基本的にはdocker上の場合はGUIの起動ができないので、実際のゲームを楽しむ場合にはそのコードを実行可能な環境がローカル上に必要です。
作成したゲーム
今回はモグラたたきを作りました。
最近ワニワニパニックを遊ぶ機会があったので、それに近いモグラたたきを選定しました。
動画投稿だけで行けると思ってたので、プロンプトが残っていなくて恐縮ですが、かなり適当なプロンプトでプロトタイプを作ってくれました。
実際の作成した動画が以下の通りです。動画がそのまま上げられなかったので、X(https://x.com/Nbrm4iJoDR36857/status/1936224318809423894) を参照してください。v1~v4まであげてます。
モグラたたきゲームを作成します。上から3,4,3の穴があります。pygameを用いて作成してください。
# 確かこんな感じ
この時点でモグラたたきと認識できるものを作成できていてびっくりしました。
文字化けしているので修正してください。
また、一度に複数体出るようにしてください。
# 確かこんな感じ
ちゃんと修正され、ついでにコンボまで導入してくれました。
序盤から難しいので、だんだん難しくなるようにしてください。
また、アイテムを追加してください。
# 確かこんな感じ
ちゃんと複数種類のアイテムが導入されていました。
エフェクトいい感じにして!!
# 確かこんな感じ
普通にエフェクトよくなってびっくりしました。こんな適当な指示で行けるものかと。
最終的なコードではクラス分けなどがしっかり行われており、可読性もなかなかいい感じでした。
.
.
.
class ParticleSystem:
def __init__(self):
self.particles = []
def add_explosion(self, x, y, color, count=15):
"""爆発エフェクト"""
for _ in range(count):
angle = random.uniform(0, 2 * math.pi)
speed = random.uniform(50, 150)
velocity_x = math.cos(angle) * speed
velocity_y = math.sin(angle) * speed - random.uniform(20, 50)
size = random.randint(3, 8)
lifetime = random.uniform(0.5, 1.2)
self.particles.append(Particle(x, y, color, velocity_x, velocity_y, size, lifetime))
def add_sparkle(self, x, y, count=8):
"""キラキラエフェクト"""
colors = [GOLD, YELLOW, WHITE, CYAN]
for _ in range(count):
angle = random.uniform(0, 2 * math.pi)
speed = random.uniform(30, 80)
velocity_x = math.cos(angle) * speed
velocity_y = math.sin(angle) * speed
color = random.choice(colors)
size = random.randint(2, 5)
lifetime = random.uniform(0.8, 1.5)
self.particles.append(Particle(x, y, color, velocity_x, velocity_y, size, lifetime))
.
.
.
工夫した点
正直全部やってくれたのであまりないですが、
v1で終わらせずゲーム体験を向上させる改良を行った点ですかね。
ただ、雑なプロンプトでなかなか良い修正をしてくれたので、楽しくなったという部分があります。苦労はしてません。
プロンプトの工夫はかなり少ないですが、今回については逆に詳細な設定を加えないプロンプトでもうまく作成されるか試したという点は工夫点に当たるかなと思います。
柔軟性が生まれた半面、自動でコンボ要素などが追加されていたため、より細かい指定をしていれば、意図しない追加は避けられると思います。(今回はプラスに働いた)
最後に
かなり雑なプロンプトでかなり仕上げてきたので、すごく可能性を感じました。もう少し難しいゲームを作らせるとどこまでの完成度までもっていくのかが気になります。
あと、SNS全然やってなかったので作り立てアカウントですが、Tシャツの対象になりますよね...?
