【Pygameで簡単なゲームを作ろう!】アニメーションやイベント処理を使ったサンプルコードで楽しく学ぶ!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

Pygameで簡単にゲームを作ろう!

おおきに!今日はPygameを使って、ゲーム開発の楽しさを体験してもらうで~。ゲーム作りって聞くと、難しそうに思うかもしれんけど、Pygameを使えば初心者でも簡単にできるんや。例えば、子どもがブロックを組み立てるみたいに、自分のアイデアをどんどん形にしていけるんやで。

Pygameには、画面に図形を描いたり、アニメーションを作ったり、ユーザーの入力を受け取ったりするための便利な機能がいっぱい詰まってる。これを使えば、ちょっとしたゲームがサクッと作れてしまうんや。さあ、一緒にゲームの世界に飛び込んで、楽しい作品を作っていこうや!

Pygameの初期化と基本構造

まずは、Pygameを使うための準備を整えよう。Pygameを使うには、初期化をして、ゲームのウィンドウを作る必要があるんや。ここでは、その基本的な流れを見ていくで。

Pygameの初期化

Pygameを使うためには、まずライブラリをインポートして、初期化を行う必要があるんや。これがないと、Pygameの機能を使えへんから、忘れたらあかんで。おまけに、ウィンドウサイズも設定しとくとええな。

ゲームの基本構造

次に、ゲームの基本的なループを作るんや。このループがあることで、ゲームが動いている状態を保つことができるで。ウィンドウを表示し続けて、何かが起こるまで待機しながら、いろんな処理を行うんや。

では、実際にコードを見てみよう!

import pygame
import sys

# Pygameの初期化
pygame.init()

# ウィンドウサイズの設定
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 画面を白で塗りつぶす
    screen.fill((255, 255, 255))

    # 画面の更新
    pygame.display.flip()

このコードを実行すると、800×600の白いウィンドウが出てくるで!これがPygameの基本的な構造や。次は、図形を描いたり、画像を表示したりしてみよか!

図形の描画とイメージの表示

次は、Pygameを使って図形を描いたり、画像を表示したりする方法を学んでいこう!これを使うと、ゲームのビジュアルがぐんと楽しくなるで~。

図形の描画

Pygameでは、簡単に図形を描くことができるんや。例えば、四角形や円を描いて、画面に表示することができるで。これを使って、ゲームの背景やキャラクターの基礎になる部分を作っていくんや。

画像の表示

さらに、Pygameでは自分の持っている画像ファイルを画面に表示することもできるんや。例えば、キャラクターのスプライトや背景画像を使って、よりリアルなゲームを作ることができるで。画像を表示するためには、まず画像を読み込んでから、画面に描画する必要があるんや。

では、実際に図形を描いてみたり、画像を表示してみたりするコードを見てみよう!

import pygame
import sys

# Pygameの初期化
pygame.init()

# ウィンドウサイズの設定
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# 画像の読み込み
player_image = pygame.image.load('player.png')  # 'player.png'は自分の画像ファイル名に変更してな

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 画面を白で塗りつぶす
    screen.fill((255, 255, 255))

    # 四角形を描く
    pygame.draw.rect(screen, (0, 128, 255), (100, 100, 200, 150))

    # 円を描く
    pygame.draw.circle(screen, (255, 0, 0), (400, 300), 50)

    # 画像を表示
    screen.blit(player_image, (300, 200))

    # 画面の更新
    pygame.display.flip()

このコードを実行すると、白いウィンドウの中に青い四角形と赤い円、そして指定した画像が表示されるで!これで、ゲームのビジュアルの基礎ができたな。次は、イベント処理を学んで、ユーザーの入力を受け付ける方法を見ていこう!

イベント処理(キーボード、マウス入力)

さて、次はイベント処理について学んでいこう!ゲームでは、プレイヤーからの入力を受け取ることがめっちゃ大事やからな。キーボードやマウスの入力をうまく処理することで、インタラクティブなゲームを作ることができるで。

キーボード入力の処理

Pygameでは、キーボードの入力を簡単に受け取ることができるんや。特定のキーが押されたかどうかをチェックして、その結果に応じてキャラクターを動かしたり、アクションを実行したりすることができるで。

マウス入力の処理

マウスの入力も同様に処理できるんや。マウスの位置やボタンのクリックを検知して、ゲーム内のオブジェクトと連携させることができるで。これを使えば、クリックでキャラクターを動かしたり、アイテムを取得したりすることができるようになるな。

では、実際にキーボードとマウスの入力を処理するコードを見てみよう!

import pygame
import sys

# Pygameの初期化
pygame.init()

# ウィンドウサイズの設定
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# プレイヤーの初期位置
player_x = 300
player_y = 200

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # キー入力の処理
    keys = pygame.key.get_pressed()  # 現在押されているキーを取得
    if keys[pygame.K_LEFT]:  # 左キーが押されたら
        player_x -= 5
    if keys[pygame.K_RIGHT]:  # 右キーが押されたら
        player_x += 5
    if keys[pygame.K_UP]:  # 上キーが押されたら
        player_y -= 5
    if keys[pygame.K_DOWN]:  # 下キーが押されたら
        player_y += 5

    # マウスの位置を取得
    mouse_x, mouse_y = pygame.mouse.get_pos()  # マウスの位置を取得

    # 画面を白で塗りつぶす
    screen.fill((255, 255, 255))

    # プレイヤーの位置に円を描く
    pygame.draw.circle(screen, (0, 128, 255), (player_x, player_y), 20)

    # マウスの位置に赤い点を描く
    pygame.draw.circle(screen, (255, 0, 0), (mouse_x, mouse_y), 5)

    # 画面の更新
    pygame.display.flip()

このコードを実行すると、青い円がプレイヤーキャラクターになって、キーボードの矢印キーで動かせるようになるで!さらに、マウスの位置には赤い点が表示されるから、マウスの動きも確認できるな。これで、ゲームにインタラクションを加える準備が整ったで!次は、アニメーションの基本について学んでいこう!

アニメーションの基本

次は、アニメーションの基本について学んでいくで!ゲームをもっと楽しくするためには、キャラクターやオブジェクトを動かすアニメーションが欠かせへん。ここでは、簡単なアニメーションの作り方を紹介するで。

フレームの概念

アニメーションは、複数のフレーム(絵)を連続で表示することで実現するんや。Pygameでは、これを利用してキャラクターが移動したり、ジャンプしたりする動きを作ることができるで。

位置の更新

アニメーションを行うためには、オブジェクトの位置を更新する必要があるんや。これをゲームループ内で毎フレーム行うことで、滑らかな動きを実現できるんやで。

では、簡単なアニメーションのコードを見てみよう!

import pygame
import sys

# Pygameの初期化
pygame.init()

# ウィンドウサイズの設定
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# プレイヤーの初期位置
player_x = 300
player_y = 200
player_speed = 5

# アニメーション用のフレーム数
frame_count = 0

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # キー入力の処理
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player_x -= player_speed
    if keys[pygame.K_RIGHT]:
        player_x += player_speed
    if keys[pygame.K_UP]:
        player_y -= player_speed
    if keys[pygame.K_DOWN]:
        player_y += player_speed

    # アニメーションのためのフレーム更新
    frame_count += 1
    if frame_count >= 60:  # 60フレームごとに1秒
        player_speed += 1  # スピードを増加
        frame_count = 0

    # 画面を白で塗りつぶす
    screen.fill((255, 255, 255))

    # プレイヤーの位置に円を描く
    pygame.draw.circle(screen, (0, 128, 255), (player_x, player_y), 20)

    # 画面の更新
    pygame.display.flip()

    # フレームレートの制御
    pygame.time.Clock().tick(60)

このコードを実行すると、青い円がプレイヤーキャラクターになって、キーボードの矢印キーで動かせるで!さらに、一定のフレームごとにスピードが増加していくアニメーションが実現されるんや。これで、基本的なアニメーションの仕組みがわかったかな?

次は、このアニメーションを使って、簡単なゲームロジックを実装する方法を学んでいこう!楽しみやな!

簡単なゲームロジックの実装

さて、最後は簡単なゲームロジックの実装について学んでいこう!ここまでで、図形の描画、画像の表示、イベント処理、アニメーションを学んできたから、これらを組み合わせてちょっとしたゲームを作る準備が整ったで。

ゲームの目的設定

まず、ゲームの目的を設定してみよう。例えば、プレイヤーキャラクターが動き回りながら、敵から逃げるゲームを作ることにするで。これを実現するために、キャラクターの位置、敵の動き、ゲームオーバーの条件などを考える必要があるんや。

敵の動きの実装

敵キャラクターも必要やな。敵はランダムに動くように設定して、プレイヤーがそれに触れたらゲームオーバーになるようにするで。

では、簡単なゲームロジックを実装したコードを見てみよう!

import pygame
import sys
import random

# Pygameの初期化
pygame.init()

# ウィンドウサイズの設定
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# プレイヤーの初期位置
player_x = 300
player_y = 200
player_speed = 5

# 敵の初期位置
enemy_x = random.randint(0, screen_width)
enemy_y = random.randint(0, screen_height)
enemy_speed = 3

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # キー入力の処理
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player_x -= player_speed
    if keys[pygame.K_RIGHT]:
        player_x += player_speed
    if keys[pygame.K_UP]:
        player_y -= player_speed
    if keys[pygame.K_DOWN]:
        player_y += player_speed

    # 敵の動き(ランダムに動く)
    enemy_x += random.choice([-enemy_speed, enemy_speed])
    enemy_y += random.choice([-enemy_speed, enemy_speed])

    # 画面を白で塗りつぶす
    screen.fill((255, 255, 255))

    # プレイヤーの位置に円を描く
    pygame.draw.circle(screen, (0, 128, 255), (player_x, player_y), 20)

    # 敵の位置に赤い円を描く
    pygame.draw.circle(screen, (255, 0, 0), (enemy_x, enemy_y), 20)

    # 衝突判定
    if (player_x - enemy_x) ** 2 + (player_y - enemy_y) ** 2 < (20 + 20) ** 2:
        print("ゲームオーバー!")
        pygame.quit()
        sys.exit()

    # 画面の更新
    pygame.display.flip()

    # フレームレートの制御
    pygame.time.Clock().tick(60)

このコードを実行すると、青い円がプレイヤーキャラクターになって、キーボードの矢印キーで動かせるで!赤い円が敵キャラクターで、敵はランダムに動くようになってるんや。もしプレイヤーが敵に触れたら、「ゲームオーバー!」と表示されて、プログラムが終了するで。

これで、簡単なゲームロジックが完成や!この基本をもとに、もっと面白いゲームを作っていくことができるで!さあ、君も自分だけのゲームを作って楽しんでみてな!

【Pygameで簡単なゲームを作ろう!】アニメーションやイベント処理を使ったサンプルコードで楽しく学ぶ!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次