1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pygameド素人がRPGを作る レベル1

Last updated at Posted at 2023-10-21

次回→https://qiita.com/Red-Jersey/items/cf28a8821a8fab17b7cb

勇者の旅立ち

こんにちは。赤ジャージです。
唐突ですが、僕がプログラミングを始めた時からなんとなーくpygameでRPG作りたいなーと思ってました。そこで、本当に作ってみよう、というのが今回の趣旨です。

この冒険(投稿)の意味

今の時代、このようなスレッドや投稿は、満ち溢れています。私がこれを投稿したとして、社会に対して何の意味もありません。しかし、学業をかなぐり捨てた不毛な学生生活の僅かばかりの成果として、見える形で記録に残しておきたいという自らの願望、これを満たすために書いていきます...

スペック(前提)

・一応pythonに関する知識はある。
・pygameに関する知識が全くない(という設定)
・RPGを作りたいけどどうやったらいいか全くわからない

What do I do ?

RPGは、数々のゲームの中で最も製作難易度の高いジャンルの一つです(他にも格ゲーとか3Dゲームとか...)。そのため、いくつかの手順を踏む必要があります。そのいくつかの手順を考える前にしばらくはpygameの機能の確認をしておきましょう。

ウィンドウの表示

いきなり難関です。初心者の心を折りに来ている。きっとRPGを作ろうとした多くの冒険者が、最初の門の難しさに挫折し、そのウィンドウを閉じたでしょう。序盤のダンジョンが難しすぎて諦めるアレです。しかし、しつこく粘って理解しようとすれば意外と簡単です。この投稿で分からなければ他の数百倍わかりやすい所へどうz(殴

ウィンドウの表示
# coding: utf-8
import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("ウィンドウの作成")
 
while True:
    screen.fill((0,0,0))
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

このコードを実行すると、このようになります。
1.png

これが、pygameを使う上での基本的なコードになります。
まず、pygameを初期化し、Surfaceオブジェクトを作成、タイトルをセットする。そしてゲームループの中で様々な処理を行い、Surfaceオブジェクトを表示するという一連の流れになっています。

関数、変数、キーワードの解説

pygame.init(): pygameを初期化します。
screen: pygame上では、Surfaceオブジェクトのことをscreenと表記するのが一般的です。
pygame.display.set_mode((640,480)): この関数で、Surfaceオブジェクトを作成します。引数の(640,480)screenの大きさを指します。
while True:: ゲームループの処理を行います。pygameでは、ループ処理をすることによって1フレームごとに処理を行います。(パラパラ漫画みたいなイメージ)
screen.fill((0,0,0)): 画面を引数の色で塗りつぶします。これはRGBで表記し、この場合(0,0,0)なので黒色です。
for event in pygame.event.get():: イベント(何らかの入力)があるか調べます。これが、pygameの肝です。
if event type == QUIT:: quitボタン(windowsでは右上の×ボタン)が押されたかどうか判定します。event.typeとはイベントの種類を指します。
pygame.quit(): pygameの機能を中止します。
sys.exit()sysライブラリは、pygameのウィンドウ表示に関する制御を行っています。このsys.exit()の場合、ウィンドウを閉じます。
pygame.display.update(): ウィンドウを更新し、表示します。pygameでは、ゲームループで行った処理をscreenに表示し、それをウィンドウに貼り付け、最後にウィンドウを表示するという処理がなされています。displayというのはウィンドウのことです。

まとめ

処理の流れとしては、
プレイヤーがゲームを起動する。
スクリーンを作る、変数を入手する
A(While True)
イベントがあるか判定する
処理を行う
ウィンドウを更新する
Aに戻る

という流れになっています。

Result

pygameって煩雑で分かりにくく奥が深い。疲れました。おそらく機能の確認は長くなりますが、それまで耐えてください。まずは武器調達です。 武器がなければ、戦えません。覚えましょう。まあ覚えることはそんなにない(当社比)ので安心してください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?