iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

First come, first served.

年の瀬に失礼しますHirosakiです。
前回の投稿から約半年が経ちました。
これまでコンパイル・共有メモリアプリと色々やってきましたが、
もう少し役割のある何かを作れる記事を書けたらな・・・と模索しておりました。

そんな中ふと目にしたライブラリが気になったので触ってみたいと思います。
出来たもの次第では何か発見が得られるのではいか、という実験企画です。
先んずれば人を制す、と行きたいものです。

以下より続きます。


【最近見かけたPyxelとやらを触ってみた】
Pyxel(ピクセル)というレトロゲームを手頃に作れるライブラリが存在するようです。
本年夏頃に世に出たものだそうで、ネット記事で紹介されており興味をそそられました。
早速触ってみましょう。




まずどこの家庭にもあるUbuntu搭載パソコンを準備します。
f:id:ipx-writer:20181229221504j:plain
実際は10年前に購入し使わなくなって5年ほど放置していたノートPCにUbuntuをインストールしたものです。

GitHubページを参考にインストールしていきます。
日本語でもしっかりREADMEが記載されているので取っ付きやすい。

【環境準備】
必要なライブラリを取得。

sudo apt install python3-pip python3-dev libglfw3 libportaudio2 libasound-dev

【Pyxelインストール】
pipコマンドで本体をインストール。

pip3 install pyxel

f:id:ipx-writer:20181229221738p:plain
f:id:ipx-writer:20181229221810p:plain
すんなりインストール完了。

f:id:ipx-writer:20181229222117p:plain
インポートも問題なし。

サンプルソースの取得】
スクリプトを実行しサンプルソースを取得します。

~/.local/bin/install_pyxel_examples

f:id:ipx-writer:20181229222207p:plain

上記3ステップで完了。

サンプルコードを実行してみます。
f:id:ipx-writer:20181229222315p:plain

ソースコードはこのような感じ。

import pyxel


class App:
    def __init__(self):
        pyxel.init(160, 120, caption="Hello Pyxel")
        pyxel.image(0).load(0, 0, "assets/pyxel_logo_38x16.png")
        pyxel.run(self.update, self.draw)

    def update(self):
        if pyxel.btnp(pyxel.KEY_Q):
            pyxel.quit()

    def draw(self):
        pyxel.cls(0)
        pyxel.text(55, 41, "Hello, Pyxel!", pyxel.frame_count % 16)
        pyxel.blt(61, 66, 0, 0, 0, 38, 16)


App()


ウィンドウサイズを指定後、pyxel.run(self.update, self.draw)関数を使用して処理を開始する単純な内容です。
1番めの関数(update)で更新監視(キー入力のイベント含む)
2個めの関数(draw)で描画処理
・・・といった処理を行っています。

GitHubページにも記載があるようにLinux版は開発中・動作不安定ではあるようですが、他サンプルを実行してみた限りでは現状気にはなりません。

このライブラリをベースに色々とやってみようかなと思います・・・・続く!