見出し画像

pygameで始めるpythonプログラム 1(画面を出してみる編)

はじめに

pygame面白そうだなと思ったので、何も考えずに書き始めようという無謀極まりない記事です。

pythonプログラムの基本的な内容については思いっきりスキップしますので、importがどうとか、classがどうとか、pip installが必要とかは説明したりしなかったりします。

間違いなく行き当たりばったりなので、どんなゲームを作るかも未定です。いきなり雲行き怪しいですが、まずはやってみようということで。

とにかく画面を出す

とりあえずゲーム画面を出さなきゃ始まらない。というわけで書いたコードがこんな感じ。

import pygame
import sys

# Pygameの初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("ゲームタイトル")

# ゲームのメインクラス
class Game:
    def run(self):
        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()            

# ゲームの開始
if __name__ == "__main__":
    game = Game()
    game.run()

これを実行すると、こんな画面が出るのだ。

ただの画面

プログラムで設定したこと

画面が出ただけなんだけど、プログラムで指定したことがいくつかある。

  • ゲーム画面の大きさは800x600ピクセル(画面の設定によってはピクセル数が異なるが、比率は同じはず)

  • タイトルに「ゲームタイトル」と表示されている

  • 画面を閉じることができる

  • 画面の背景が白い

コードの解説

初期設定

import pygame
import sys

# Pygameの初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("ゲームタイトル")

必要モジュールのインポートとpygameの最初の設定

  • pygameによるゲームの初期化(ゲーム起動時は初期化する)

  • スクリーンオブジェクトを作成。画面大きさは800x600ピクセル

  • 画面のタイトルを「ゲームタイトル」と設定

Gameクラスの作成

# ゲームのメインクラス
class Game:
    def run(self):
        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()            

Gameクラスにrunメソッドを作成し、runメソッドの無限ループ内で以下を実行する。

  • イベントをチェックする。終了イベントが来たらpygameを終了し、画面を閉じる。

  • 画面背景を白に設定する

  • 画面を更新する

実行ポイント

# ゲームの開始
if __name__ == "__main__":
    game = Game()
    game.run()

実行開始ポイント。Gameクラスのオブジェクトを作成して、runメソッドを呼び出してるだけ。Gameクラスのrunメソッドはさっき作ったものですね。無限ループが走って…というやつです。

まとめ

まずは画面表示まで。次はもう少し画面の調整が入ります。果たしてゲームが動く日は来るのか?

この記事が気に入ったらサポートをしてみませんか?