0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonで作るリズムゲーム|へたれリズムプロジェクト

Last updated at Posted at 2025-10-26

はじめに
こんにちは、へたれです。
今回は、Python(pygame)を使って「自作のリズムゲーム」を作ってみました。

学生時代に遊んだ「矢印が流れて、タイミングよく押す」あのゲーム──。
自分の曲で動かしたら楽しそうだなと思い、思い切ってプログラムを書いてみました。

最初は「Pythonでゲームなんて無理だろ」と思っていましたが……
やってみたら意外といける。しかも楽しい。

🎵 作品の概要
タイトルは 「へたれリズムゲーム」。
自作曲「HetareSummer」に合わせて、矢印をタイミングよく押していく簡単なリズムゲームです。

使用ライブラリ:pygame

音楽:自作(へたれSummer)

使用画像:自作ネオン風矢印(透明PNG)

動作環境:Windows + Python 3.9以降

操作方法もシンプルです👇

操作内容↑ → ↓ ←タイミングに合わせて押すQ一時停止R再開ESC終了

判定も実装してあり、Perfect / Great / Good / Miss が表示されます。
Good以上なら矢印は消え、コンボが加算される仕組みです。

💻 実際のゲーム画面
https://www.youtube.com/shorts/oxIJ-apSNFk
👉 背景に画像を敷いて、上から矢印が流れてきます。
中央のラインに重なった瞬間にキーを押すと、タイミングに応じた判定が表示されます。

🧩 コードの一部紹介
実装はすべてPythonで行っています。
ゲームの動作は、pygame というライブラリが担っています。

# 判定処理の一部
def check_hit(direction):
    global score, combo, result, result_timer
    candidates = [a for a in arrows if a.active and a.dir == direction]
    if not candidates:
        result, _, _ = "Miss", 0, (255,80,80)
        combo = 0
        result_timer = 40
        return

    target = min(candidates, key=lambda a: abs(a.y - target_y))
    diff = abs(target.y - target_y)
    name, pts, _ = judge_from_diff(diff)

    if name == "Miss":
        result = "Miss"
        combo = 0
        result_timer = 40
    else:
        result = name
        score += pts
        combo += 1
        target.active = False
        result_timer = 40

キー入力の判定を差分で測り、タイミングによってスコアを加算します。
シンプルですが、リズムゲームの本質部分です。

⚙️ 一時停止&再開機能
Qキーで一時停止、Rキーで再開できるようにしました。
一時停止中は「PAUSED」と表示され、音楽も自動で停止します。
再開時は音楽もリズムも再スタート。
この部分を作ったときはちょっと感動しました。

🎨 こだわりポイント
矢印をネオン風で光るようにデザイン

透明背景でPNG化して自然に合成

スコア・コンボ・判定を見やすく中央表示

自作曲のテンポに合わせてスピード調整

プログラムと音楽、デザインがすべて連動した瞬間は本当に楽しかったです。

💡 学びと気づき
Pythonでも、ちょっと工夫すれば**「リアルタイム性のあるゲーム」**が作れる。
pygameは昔ながらのライブラリですが、音楽・画像・入力をまとめて扱える点が強力です。

また、シンプルな構造にすることで、ミス判定やコンボ管理のような要素も理解しやすくなりました。

🧠 今後の展開
BPMに合わせた譜面生成

複数曲対応(フォルダ読み込み)

難易度設定(EASY / HARD)

オンラインランキング対応(FlaskやStreamlitで)

……など、夢が広がります。
いつか「へたれリズムゲームDX」として再登場するかもしれません😎

📜 注意書き(著作権など)
この作品は個人制作の非商用プロジェクトです。
コナミ株式会社の「Dance Dance Revolution」など既存商標・作品とは一切関係がありません。

音楽・コード・画像はすべて自作またはフリー素材を使用しています。
収益化・販売などの意図はありません。

🎵 まとめ
Python × 音楽で、ここまで遊べるとは思っていませんでした。
プログラムが動き、音に合わせて光る──
その瞬間、“コードが生きている” と感じられます。

ぜひ、皆さんも自分の曲で遊んでみてください。
プログラムが音楽を踊らせる瞬間、めちゃくちゃ楽しいです!

✍️ 作者:へたれ
🎧 楽曲:「へたれSummer」
💻 開発環境:Python 3.9 + pygame
📅 制作期間:約30分

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?