🌵

【第2回】Make STG with Pygame Zero

2022/08/12に公開

What is a function - 関数とはなにか

この章は難しめです。眠くなってきたら飛ばして次の章に行ってみましょう。

数学における関数は、ある入力に対して出力を決める関係のことです。
中学や高校では、y = x^2のことを関数と言ったりしますが、プログラミングではちょっと違うので気を付けてください。
プログラミングでの、関数もある入力に対して出力を決定します。入力するデータのことを引数 と言います。また、出力するデータのことを返り値または戻り値と言います。(返り血じゃないよ!!)。さらに、関数が値を出力することを、値を返すと言います。さらにさらに、関数を実行することを関数を呼び出すと言います。よく出てくるので覚えておくといいでしょう。

ここで、気を付けておいてほしいことは

  • 引数は0個でもいいし100個でもいい(人間が理解しやすいためには5~6個がいいけど)
  • 戻り値は基本一つ。戻り値として無を返すこともできる。
  • Pythonでは戻り値は省略できる。省略すると、無を返すことになる

Pythonでの関数の書き方は次の通りです。

def 関数名(引数1, 引数2, ...):
	処理1
	処理2
	...
	return 戻り値

このとき、とってもとっても重要なのがインデント(字下げ)です。インデントとは行頭の空白のことです。関数の中にまとめたい処理は字下げする必要があります。例えば、次のようなコードがあったとします。

def foo():
	print("a")
	print("b")
print("c")
foo()

foo()を呼び出したとき、出力はどのようになるでしょうか。試してみましょう。

結果
c
a
b

一番下の行は字下げがありません。なので関数のという判定です。関数の外にあるので、関数の呼び出しに関係なく、まず実行されちゃいます。つまり、cという文字が出力されるのです。そのあと、foo()という関数呼び出しが来ます。ここで初めて関数の中の処理が実行されるのです。

ここまでの内容はかなり難しかったと思います。理解できなかったとしても今のところ問題はありません。

Let's draw a character - キャラクターを描画してみよう

まず、キャラクターのデータを作成します。これも、Pygame Zeroではとても簡単です。
といっても、先にキャラの画像を用意しないといけまんせん。適当に好きな画像を用意して、編集してるプログラムと同じフォルダに画像を保存してください。

  • Tutorial(フォルダ)
    • shooting_game.py
    • 画像ファイルの名前.png

このようになっていればOKです。
次に、下のコードを追加します。

chara = Actor("画像ファイルの名前", center=(300, 200))

これだけで、キャラの作成はおしまいです。しかし、これだけではキャラは表示されません。
描画関数にキャラを描画する処理を追加しましょう。

def draw():
    screen.fill((255, 128, 0))
    chara.draw() #追加したコード

ここまで出来たら、保存して実行して見ましょう。ちゃんとキャラが表示されたら次に進みましょう。

【次回】キャラを動かす

参考サイト

https://www.javadrive.jp/python/userfunc/index1.html#section1

Discussion