Pythonで当たり判定を作りたい。矩形判定や円形判定のしくみが分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、当たり判定の基本を理解すれば、意外とシンプルに実装できます。
この記事では、Pythonで当たり判定を作る方法について、矩形・円形判定の基礎と実装例を解説します。
✨ この記事でわかること
- 矩形判定の実装方法
- 円形判定の実装方法
- 当たり判定の基本概念
- Unity版の当たり判定へのステップアップ

当たり判定は、ゲーム制作の基礎です。まずは、矩形判定と円形判定の基本を理解しましょう。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
矩形判定の実装方法

矩形判定は、2つの四角形が重なっているかを判定します。
以下のコードで、基本的な矩形判定ができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
def is_rect_colliding(rect1, rect2): """ 矩形判定 rect1, rect2: (x, y, width, height)のタプル """ x1, y1, w1, h1 = rect1 x2, y2, w2, h2 = rect2 return (x1 < x2 + w2 and x1 + w1 > x2 and y1 < y2 + h2 and y1 + h1 > y2) # 使用例 rect1 = (100, 100, 50, 50) rect2 = (120, 120, 50, 50) if is_rect_colliding(rect1, rect2): print("衝突しています") |
このコードで、2つの矩形が重なっているかを判定できます。
計算が簡単で、処理速度が速いのが特徴です。
矩形判定は、多くのゲームで使われています。
例えば、ブロック崩しや2Dアクション、シューティングゲームなどで、キャラクターや壁・弾同士の衝突判定として使われています。

まずは、このコードを理解しましょう。
円形判定の実装方法

円形判定は、2つの円が重なっているかを判定します。
以下のコードで、基本的な円形判定ができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import math def is_circle_colliding(circle1, circle2): """ 円形判定 circle1, circle2: (x, y, radius)のタプル """ x1, y1, r1 = circle1 x2, y2, r2 = circle2 distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2) return distance < (r1 + r2) # 使用例 circle1 = (100, 100, 30) circle2 = (120, 120, 30) if is_circle_colliding(circle1, circle2): print("衝突しています") |
このコードで、2つの円が重なっているかを判定できます。
距離を計算して、半径の和と比較します。
平方根の計算は処理負荷が高いため、実際のゲームでは距離の二乗と半径の和の二乗を比較して判定することが一般的です。
当たり判定の基本概念

当たり判定の基本概念を理解することが大切です。
- 矩形判定:四角形同士の衝突を判定
- 円形判定:円同士の衝突を判定
- 点判定:点が図形内にあるかを判定
用途に応じて使い分けます。
矩形判定は、キャラクターが地面を歩いたり、壁にぶつかったりする判定に使われます。
円形判定は、弾や爆発の範囲など、動きのあるオブジェクトの判定に向いています。
この2つを理解するだけで、シンプルなゲームなら十分に作れるようになりますよ。
Unity版の当たり判定へのステップアップ

Pythonで当たり判定を実装することで、基礎を学べます。
ただし、本格的なアクションゲームを作るには、Unityの方が効率的です。
Unityなら、以下の機能が簡単に使えます。
- Collider2D(自動当たり判定)
- Raycast(距離判定)
- 物理演算(Rigidbody2D)
Pythonで基礎を学んだ後、Unityにステップアップするのがおすすめです。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実践的な当たり判定を学ぶには

ここまで、Pythonで当たり判定を作る方法について解説してきました。
Pythonで当たり判定を実装することで、基礎を学べます。
ただし、本格的なアクションゲームを作るには、Unityの方が効率的です。
Unity入門の森では、アクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

Pythonで当たり判定を作る方法について解説しました。
要点のまとめ
- 矩形判定は、四角形同士の衝突を判定
- 円形判定は、円同士の衝突を判定
- Pythonで基礎を学んだ後、Unityにステップアップするのがおすすめ
- 本格的なアクションゲームを作るには、Unityが効率的
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント