とあるメーカーエンジニアの趣味備忘録

Python, マイコンいじり, 日々の呟きなど

Pyxelを使ってみた&自分用メモ

PythonGUI 系の開発をすると言うと私が思いつくのは

  • tkinter
  • 専用フレームワーク
    ぐらいしか頭になく、自分の中では PythonGUI 開発には不向きだという印象を抱いていました。 しかし、最近 Pyxel というライブラリを見つけました。

Pyxel (ピクセル) はPython向けのレトロゲームエンジンです。 使える色は16色のみ、同時に再生できる音は4音までなど、レトロゲーム機を意識したシンプルな仕様で、Pythonでドット絵スタイルのゲームづくりが気軽に楽しめます。 (以下HPより引用) github.com

いや~素晴らしいですね。 有難いことにこのライブラリの作者が日本人のようなので、日本語のドキュメントが用意されており、非常に助かります。

このライブラリについて、ドキュメントでの紹介としては「レトロゲームエンジン」として利用できる点を押し出しておりますが、それ以外の利用も十分に可能です。 例えば、動作が非常に軽いことから高速グラフ描画等にも利用できると考えております。

以下では、Pyxel を利用していて個人的に調べた内容のメモを記載していきます。

  • デフォルトの FPS (フレーム切り替え速度)
pyxel.DEFAULT_FPS # = 30
  • キーイベントの判定処理 例えば左十字キーの押下判定をしたい時、以下の記述では当たり判定がされない。
if pyxel.btn(pyxel.KEY_LEFT) is True:
    print("LEFT!")

調べてみたところ関数 btn からの返却値の型が bool 型ではなく int 型であった。 型違いにより判定処理結果が False となってしまったと考えられる。
そのため、以下のように記述するのが正解

if pyxel.btn(pyxel.KEY_LEFT):
    print("LEFT!")