【第2回】Make STG with Pygame Zero
What is a function - 関数とはなにか
この章は難しめです。眠くなってきたら飛ばして次の章に行ってみましょう。
数学における関数は、ある入力に対して出力を決める関係のことです。
中学や高校では、
プログラミングでの、関数もある入力に対して出力を決定します。入力するデータのことを引数 と言います。また、出力するデータのことを返り値または戻り値と言います。(返り血じゃないよ!!)。さらに、関数が値を出力することを、値を返すと言います。さらにさらに、関数を実行することを関数を呼び出すと言います。よく出てくるので覚えておくといいでしょう。
ここで、気を付けておいてほしいことは
- 引数は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() #追加したコード
ここまで出来たら、保存して実行して見ましょう。ちゃんとキャラが表示されたら次に進みましょう。
参考サイト
Discussion