Web 版 Pyxel を使うと Python や Pyxel をインストールせずに、PC、スマートフォン、タブレット等の Web ブラウザーで Pyxel のアプリケーションを実行できます。
Web 版 Pyxel の利用方法には、次の 3 種類があります。
-
Pyxel Web Launcher に GitHub リポジトリを指定する
Pyxel Web Launcher の URL に GitHub のリポジトリ名を指定すると、指定したリポジトリを直接読み込み、Web ブラウザ上でアプリを実行できます。アプリを GitHub で公開している場合、最も簡単な実行方法です。 -
Pyxel アプリを HTML ファイルに変換する
アプリが Pyxel アプリケーション形式 (.pyxapp) になっている場合は、pyxel app2html
コマンドを使って HTML ファイルに変換できます。変換後の HTML ファイルはサーバーを必要とせず、単体で実行可能です。 -
Pyxel カスタムタグを使って HTML ファイルを作成する
Pyxel 専用のカスタムタグを使用して、アプリ実行用の HTML ファイルを作成します。作成した HTML ファイルはサーバーでホスティングする必要がありますが、既存の HTML ページへの組み込みやカスタマイズが可能です。
それぞれの利用方法について説明します。
Python コードや Pyxel アプリ (.pyxapp) が GitHub 上で公開されている場合、Pyxel Web Launcher を使用して直接実行できます。
Pyxel Web Launcher の URL 書式は以下の通りです。
https://kitao.github.io/pyxel/wasm/launcher/?<コマンド>=<githubのユーザー名>.<リポジトリ名>.<アプリのディレクトリ>.<拡張子を取ったファイル名>
コマンドには次の3つが指定できます。
run
: Python スクリプトを実行する (別ファイルやディレクトリのインポートは不可)play
: Pyxel アプリを実行するedit
: Pyxel Editor を起動する
例えば、ユーザー名がtaro
、リポジトリ名がmy_repo
、ファイルのディレクトリがsrc/scenes
、Python スクリプトがtitle.py
の場合は、URL は以下のようになります。
https://kitao.github.io/pyxel/wasm/launcher/?run=taro.my_repo.src.scenes.title
run
コマンドでは、Web の仕様上の制約により、ローカルの別ファイルやディレクトリをインポートすることができないのでご注意ください。
dist/games
にあるshooter.pyxapp
を実行する場合の URL は次の通りです。
https://kitao.github.io/pyxel/wasm/launcher/?play=taro.my_repo.dist.games.shooter
run
およびplay
コマンドには、バーチャルゲームパッドを有効にするgamepad
属性や、追加パッケージを指定するpackages
属性を指定することが可能です。
例えば、バーチャルゲームパッドを有効にし、追加パッケージとして NumPy と Pandas を使用する場合は、次のような URL になります。
https://kitao.github.io/pyxel/wasm/launcher/?run=taro.my_repo.src.scenes.title&gamepad=enabled&packages=numpy,pandas
なお、追加できるパッケージはPyodide 対応パッケージに限られます。
edit
コマンドを使用する場合、editor
属性で Pyxel Editor の起動画面を指定できます。
例えば、assets
ディレクトリにあるshooter.pyxres
ファイルをタイルマップエディタ画面で起動するには、以下の URL を使用します。
https://kitao.github.io/pyxel/wasm/launcher/?run=taro.my_repo.assets.shooter&editor=tilemap
Pyxel Web Launcher ページで必要な情報を入力して、アプリの起動 URL を自動作成することも可能です。
Pyxel アプリケーションファイル (.pyxapp) は、次のコマンドで単独で動作する HTML ファイルに変換できます。
pyxel app2html your_app.pyxapp
作成された HTML ファイルでは、バーチャルゲームパッドがデフォルトで有効になっていますが、カスタムタグを編集することで無効にすることも可能です。
HTML ファイルに Pyxel 専用のカスタムタグを記述することで、Pyxel アプリを実行できます。
Pyxel カスタムタグを利用するには、以下のスクリプトタグを HTML ファイルに追加します。
<script src="https://cdn.jsdelivr.net/gh/kitao/pyxel/wasm/pyxel.js"></script>
Python コードを直接実行するには、次のようにpyxel-run
タグのscript
属性にコードを記述します。
<pyxel-run
script="
import pyxel
pyxel.init(200, 150)
pyxel.cls(8)
pyxel.line(20, 20, 180, 130, 7)
pyxel.show()
"
></pyxel-run>
外部の Python ファイルを読み込んで実行する場合は、pyxel-run
タグにroot
とname
属性を指定します。
root
は検索の起点となるディレクトリ、name
はファイルパスです。
例えば先ほどのコードをtest.py
というファイルに保存し、HTML ファイルと同じディレクトリに配置した場合、次のように記述します。
<pyxel-run root="." name="test.py"></pyxel-run>
root
がカレントディレクトリの場合(root="."
)、root
属性は省略可能です。
ローカルの HTML ファイルから外部ファイルを読み込むにはサーバーでのホスティングが必要です。
Python 環境があれば、次のコマンドで簡易サーバーを起動できます。
python -m http.server
# MacやLinuxの場合はpython3を使用してください
サーバー起動後、ブラウザでhttp://localhost:8000/test.html
にアクセスできます。
同様に、Pyxel アプリ(.pyxapp)はpyxel-play
タグで実行できます。
<pyxel-play
root="https://cdn.jsdelivr.net/gh/kitao/pyxel/python/pyxel/examples"
name="megaball.pyxapp"
></pyxel-play>
この例では、root
属性に URL を指定しています。
pyxel-run
タグとpyxel-play
タグには、バーチャルゲームパッドを有効にするgamepad
属性や、追加パッケージを指定するpackages
属性を指定できます。
例えば、バーチャルゲームパッドを有効にし、NumPy と Pandas を使用する場合は次のようになります。
<pyxel-run name="test.py" gamepad="enabled" packages="numpy,pandas"></pyxel-run>
使用できるパッケージはPyodide 対応パッケージに限られます。
また、pyxel-edit
タグを使って Pyxel Editor を起動できます。
例えば、assets
ディレクトリにあるshooter.pyxres
ファイルをイメージエディタ画面で起動するには、次のように記述します。
<pyxel-edit root="assets" name="sample.pyxres" editor="image"></pyxel-edit>