タイトル画像
琴葉茜

さてまずは、Pyxelを起動して画面を出すところまでやってみようか

琴葉葵

「Pyxel」も外部ライブラリだから、最初にpipでインストールが必要だよね!

琴葉茜

そうだね!いつもの感じで「Pyxel」をインストールしよう!

Windowsの場合

pip install pyxel

Macの場合

pip3 install pyxel
琴葉葵

おっけー!インストールできたよ!

琴葉茜

そしたら、最初はこのシンプルなプログラムを「hockey.py」ってファイルにコピーしよう!

import pyxel

class App:
    def __init__(self):
        pyxel.init(160, 120, title="ホッケーゲーム")
        pyxel.run(self.update, self.draw)

    def update(self):
        # 今はまだ何もしない
        pass

    def draw(self):
        pyxel.cls(1)  # 背景色:1(青色)

App()
琴葉葵

実行する時はいつも通りで良いのかな?

琴葉茜

そうだね!早速動かしてみよう!

琴葉葵

お、画面のど真ん中に青色のディスプレイが出てきたね!

解説画像1
琴葉茜

バッチリだね!じゃあ「Pyxel」のプログラムについて簡単に解説するよ

琴葉茜

まず、プログラム全体はクラス「App」で管理されていて、初期設定「def __init__(self):」の「pyxel.init()」で、ウィンドウの大きさとウィンドウの上部分に表示されるタイトルを設定できるよ

琴葉葵

ウィンドウ設定の後にある「pyxel.run()」は何??

琴葉茜

それは、どのプログラムを更新し続けるかを指定するプログラムだね

琴葉葵

更新し続ける??ってことは、指定したプログラムをループさせるって感じなの??

琴葉茜

まぁそんな感じ
だけど普通のループと違って更新頻度を大体1秒間に30回くらいで保ちながら、動作の処理「update」と描画の処理「draw」を交互に処理されるようになるんだ

解説画像2
琴葉茜

そうすることで、ユーザーからの入力受け付けも正しく行われるし、パソコンの負担も減らしてくれるんだ

琴葉葵

なるほど!じゃあホントにこのプログラムが基本の形になってて、ここから色んな処理を「update」と「draw」に作っていくんだね!!

琴葉茜

そういうこと
ちなみに、この更新・描画を「フレーム」って単位で表現されて、1秒間に何フレーム処理されるかを「fps(frame per second)」って単位で表すよ

琴葉葵

ほうほう、じゃあ今回の場合は「30fps」ってことなんだね!

琴葉茜

そうだね!ちなみに、「fps」の考え方はよく「パラパラ漫画」で例えられているから、それをイメージしておくと良いよ!

琴葉葵

パラパラ漫画!めくる度に少しずつ絵が変わっていくけど、それが早くなると動いて見えるようになるもんね

琴葉茜

あ、あと、少し関係ない話だけど、ゲームのジャンルにある「FPS」は「First Person Shooter」の略だから勘違いしないようにね

琴葉葵

(そうなんだ...危ない危ない)

琴葉茜

次は、関数「draw」の中に注目しよう

琴葉茜

この中にある「pyxel.cls()」は背景色の設定をする関数だよ

琴葉葵

今回は引数に「1」が入ってるってことは、「1」は「青色」なんだね
そしたら、他の色は何番になるの?

琴葉茜

Pyxelで扱える色は全部で16色で、次の表のとおりになるよ

公式の色の表

公式サイトから抜粋

琴葉葵

ほうほう
じゃあ、数字を「8」に変えてみると...

解説画像3
琴葉葵

おねーちゃんカラー!!

琴葉茜

お、おぅ...ありがとう(?)