Pythonでゲームを作りたい。Pygameでジャンプを実装したい。
でも、どうやって実装すればいいか分からない。
実は、Pygameでジャンプを実装するのは、意外とシンプルです。
この記事では、Python+Pygameでジャンプを実装する方法を、初心者向けにわかりやすく解説します。
✨ この記事でわかること
- Pygameでジャンプを実装する方法
- 重力と速度の扱い方
- 接地判定の実装
- Unityへのステップアップ

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

Pygameでジャンプを実装するには、次の要素が必要です。
- プレイヤーの位置(x、y座標)
- 速度(velocity)
- 重力(gravity)
- 接地判定(is_grounded)
これらを組み合わせることで、ジャンプを実装できます。
重要なのは、重力と速度の関係を理解することです。
基本的なジャンプ実装

Pygameでジャンプを実装する基本的なコードを紹介します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import pygame pygame.init() # 画面設定 screen = pygame.display.set_mode((800, 600)) clock = pygame.time.Clock() # プレイヤーの設定 player_x = 400 player_y = 300 player_width = 50 player_height = 50 velocity_y = 0 gravity = 0.5 jump_strength = -10 is_grounded = False ground_y = 500 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # ジャンプ処理 if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE and is_grounded: velocity_y = jump_strength # 重力処理 velocity_y += gravity player_y += velocity_y # 接地判定 if player_y >= ground_y - player_height: player_y = ground_y - player_height velocity_y = 0 is_grounded = True else: is_grounded = False # 描画 screen.fill((0, 0, 0)) pygame.draw.rect(screen, (255, 0, 0), (player_x, player_y, player_width, player_height)) pygame.draw.line(screen, (255, 255, 255), (0, ground_y), (800, ground_y), 2) pygame.display.flip() clock.tick(60) pygame.quit() |
このコードでジャンプが起こる仕組み
- スペースキーを押した瞬間に、上向きの初速(
velocity_y = -10)を与える - その後は、毎フレーム重力(
gravity)が加算され、少しずつ下向きの速度に変わる - 速度の変化に合わせて
player_yが更新され、ジャンプしているように見える - 地面に触れたら速度を0に戻し、再びジャンプできる状態にする
初心者がつまずきやすいポイント
KEYDOWNは「キーを押した瞬間」だけ反応する- ジャンプ中の動きは、キー入力ではなく毎フレーム実行される処理によって制御されている
jump_strengthがマイナスなのは、画面の上方向が数値的に小さくなるため
このコードでは、スペースキーを押すとジャンプできます。
gravity は重力の強さ、jump_strength はジャンプの高さを決める値です。
最初は数値の意味が分からなくても問題ありません。
これらの値を少しずつ変えながら、ジャンプの挙動がどう変わるかを確認してみましょう。

まずはこのコードをそのまま動かしてみましょう。数値を少し変えるだけでも、ジャンプの感覚が大きく変わるのが分かるはずです。
重力と速度の関係

ジャンプができたら、次は「ジャンプの感触」を変えてみましょう。
実は、ジャンプの高さや滞空時間は、重力と速度のバランスを少し変えるだけで大きく変わります。
ジャンプした瞬間に大きく跳ねるのか、フワッと浮かぶのかは、すべて数値次第です。

この仕組みが分かると、「自分好みのジャンプ」を作れるようになります。
接地判定の実装

接地判定は、プレイヤーが地面に触れているかを判定します。
以下のコードで、基本的な接地判定ができます。
|
1 2 3 4 5 6 7 8 |
# 接地判定 if player_y >= ground_y - player_height: player_y = ground_y - player_height velocity_y = 0 is_grounded = True else: is_grounded = False |
このコードで、プレイヤーが地面に触れているかを判定できます。
is_groundedがTrueの時だけ、ジャンプができるようにします。
これにより、空中ジャンプを防げます。
Unityへのステップアップ

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

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

Python+Pygameでジャンプを実装する方法について解説しました。
要点のまとめ
- Pygameでジャンプを実装するのは、ゲーム制作の基礎を学ぶのに良い方法
- 重力と速度の関係を理解することが大切
- 接地判定を実装することで、空中ジャンプを防げる
- 本格的なアクションゲームを作るには、Unityがおすすめ
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント