Pygameで動きのある背景を作る!簡単なスクロール実装ガイド

ゲーム

Pygameを使った2Dゲームの制作では、背景をスクロールさせるテクニックが不可欠です。背景が動くことでプレイヤーに「移動している感覚」を提供し、ゲームの世界観をより引き立てます。

本記事では、初心者の方でも簡単に背景スクロールを実装できる方法をわかりやすく解説します!

ゆーや
ゆーや

ゲーム制作楽しいですよね!

そんなプログラミングに楽しさを覚えたあなた!

ゆーや
ゆーや

勉強し始めて、IT業界に興味があるけど、自信がない。

僕も同じでした。なので、一人でコツコツ、1年間も独学で勉強…
そのあと、一人で転職活動…

心細かったのを覚えています…

ゆーや
ゆーや

しかし、時代は変わり、

プログラミングを学び、転職をサポートしてくれるスクールがあります!

その名も…

【Winスクール】

初心者から経験者まで対応できる300以上の講座ラインナップで、スキルアップを目指す方に最適!プロ講師による丁寧な「個人レッスン」で、あなたに合わせた指導を受けられます。

  • オンライン or 対面で選べる受講スタイル:あなたのライフスタイルに合わせて柔軟に受講可能!
  • 実践重視のカリキュラム:現場経験豊富な講師陣が指導。学んだスキルをそのまま活かせる即戦力を養成。
  • 年間1500社の企業研修実績で、ビジネスシーンに即した指導内容が魅力!

就職・転職サポートも充実し、受講中はもちろん卒業後も安心。まずは無料体験で、その質の高さを体感してください!

まずは無料体験・説明会に参加を♪【Winスクール】

ゆーや
ゆーや

「完全独学Python」で学習しているあなたなら大丈夫!

僕みたいにリモートワークで自由な生活を手に入れよう!

まずは無料体験・カウンセリングを受けてみよう!

もちろん、Pythonコースもあるよ!

背景スクロールの仕組みを理解する

背景スクロールは、背景画像を一定の速度で移動させ、画面から消えた部分を再利用することで実現されます。例えば、横方向にスクロールする場合、背景画像が左から右へ移動して、画面の左端に隙間ができたら、その隙間を再び背景画像で埋めるイメージです。こうすることで、無限に背景が続いているかのように見せかけることができます。

Pygameのインストールと基本操作

ゆーや
ゆーや

Pygameのインストールについてはこちらから!

Pygameの基本的なコードについて分からなかったら以下の記事に戻ってみてね!

横スクロールの実装

サンプルコード

import pygame
import sys

# Pygameの初期化
pygame.init()

# 画面サイズと背景画像の読み込み
screen_width, screen_height = 800, 600
screen = pygame.display.set_mode((screen_width, screen_height))
background = pygame.image.load('background.png').convert()

# 背景の初期位置
bg_x = 0

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

    # 背景スクロールの実装
    bg_x -= 2  # スクロール速度を設定(-2ピクセルずつ左に移動)

    # 背景が画面外に出たらリセット
    if bg_x <= -screen_width:
        bg_x = 0

    # 背景を2枚並べて描画
    screen.blit(background, (bg_x, 0))
    screen.blit(background, (bg_x + screen_width, 0))

    pygame.display.update()
    pygame.time.Clock().tick(60)
ゆーや
ゆーや

今回は星空を背景にしてみました!

横スクロールで画像が流れているのがよくわかるね!

コードの解説

# 背景の初期位置
bg_x = 0
ゆーや
ゆーや

背景の初期位置: bg_x という変数で背景の位置を管理します。

  # 背景スクロールの実装
    bg_x -= 2  # スクロール速度を設定(-2ピクセルずつ左に移動)
ゆーや
ゆーや

背景のスクロール: bg_x -= 2 というコードで背景を左に動かします。この数字を増減することでスクロールの速さを調整可能です。

  # 背景が画面外に出たらリセット
    if bg_x <= -screen_width:
        bg_x = 0
ゆーや
ゆーや

背景のリセット: 背景が画面の左端に消えたときに bg_x = 0 とリセットし、無限に続くように見せかけています。

縦スクロールの実装

今度は縦方向に背景がスクロールする場合を見てみましょう。縦スクロールは横スクロールと同じ原理ですが、座標が変わります。

import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((screen_width, screen_height))
background = pygame.image.load('background.png').convert()

bg_y = 0

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    bg_y += 2  # 下方向にスクロール

    if bg_y >= screen_height:
        bg_y = 0

    screen.blit(background, (0, bg_y - screen_height))
    screen.blit(background, (0, bg_y))

    pygame.display.update()
    pygame.time.Clock().tick(60)
ゆーや
ゆーや

横スクロールを応用すれば、理解できそうだね!

x⇒yで考えれば、大丈夫!

まとめ

本記事では、Pygameを使った背景スクロールの基本的な実装方法を解説しました。背景のスクロールは簡単に実装できる上に、ゲームに動的な要素を加え、プレイヤーを楽しませる効果的なテクニックです。

コメント

タイトルとURLをコピーしました