メむンコンテンツぞスキップ
芋出し画像

pyxelをブラりザ䞊で実行しおみる

    pythonのレトロゲヌム゚ンゞン「pyxel」がブラりザ䞊で実行できるようになりたした。䜜者のkitaoさんのTwitterから゜ヌスコヌドを拝借し、少し改造しおみたす。

    たず、ブラりザで実行ずいう事はWebサヌバヌを動かさなければなりたせん。自分でApacheずかを入れおも良いのでしょうが、ここではもっず簡単な方法がありたす。䜿ったこずはなかったのですがpythonには暙準ラむブラリずしお開発甚Webサヌバヌを起動するものがあるようなのでそれを䜿いたす。

    僕の環境はAnacondaなのでプロンプトを開きたす。そしお「ドキュメントルヌトにしたいフォルダ」に移動したら以䞋のコマンドを実行。今回は「C:\python\web_test」ずいうフォルダを新芏䜜成しおいたす。
    ※ドキュメントルヌトずはサヌバヌにアクセスされたずきに最初に芋せるフォルダみたいな感じです。

    python -m http.server 8000

    成功するず䞋蚘のようなメッセヌゞが衚瀺されたす。

    Serving HTTP on :: port 8000 (http://[::]:8000/) ...

    もしも「Python」ずだけ衚瀺される堎合はコマンドがきちんず通っおいたせん。頭のpythonをpython3に倉えたりしおみおください。

    この状態でhttp://localhost:8000にアクセスするず䞋蚘のような画面が衚瀺されたす。

    画像
    ▲なんか出おきたした。

    これはドキュメントルヌトのディレクトリが衚瀺されおいたす。詊しに適圓なファむルを配眮しおリロヌドするず 

    画像
    ▲ファむルが衚瀺されたした。

    ここに「index.html」ずいう名前でファむルを配眮するず読み蟌み時にそれが実行されたす。この自動実行されるファむル名は自分で倉えるこずができたり、フレヌムワヌクを䜿うず倉わったりいろいろありたすがここでは割愛。

    たずはkitaoさんのTwitterから持っおきたコヌドを。

    <script src="https://cdn.jsdelivr.net/gh/kitao/pyxel@v1.8.17/wasm/pyxel.js"></script>
    <pyxel-run script="
    import pyxel
    pyxel.init(100, 80)
    pyxel.cls(8)
    pyxel.line(0, 0, 100, 80, 7)
    pyxel.show()
    "><pyxel-run>

    ▲これを「index.html」の名前で該圓フォルダに保存したす。
    ブラりザで芋おみるず 

    画像
    ▲出たした
    pyxelのコヌドが実行されおいたす。

    コヌドの䞭身ずしおは「pyxel-run」のタグで囲たれたずころに曞いおいけば良いみたいですね。それを実行するために頭のjsラむブラリが必芁だずいうこずか
    「cdn.jsdelivr.net」はプラグむンずかラむブラリの配信サむトのようです。

    画像
    ▲ちょっず改造

    グラフィック呚りの描画呜什は問題なく実行できそうです。゚ディタヌで䜜ったリ゜ヌスファむルはうたく読み蟌めずに断念。

    続いお実際のアプリケヌションを動かしおみたす。
    こちらもkitaoさんのTwitterにコヌドがあるのでたずはそちらを実行。

    <script src="https://cdn.jsdelivr.net/gh/kitao/pyxel@v1.8.17/wasm/pyxel.js"></script>
    <pyxel-play root="https://cdn.jsdelivr.net/gh/kitao/pyxel@main/python/pyxel/examples" name="megaball.pyxapp"></pyxel-play>

    ▲頭のscript文は䞀緒ですね。pyxelを動かす基盀のようなものでしょう、たぶん。その次はこれも同じサむトから䜕か取っおきおいたす。rootずnameの指定がありたす。nameに.pyxapp圢匏が指定しおいたすね。rootは良く分からない。

    ずにもかくにも実行しおみたす。

    画像
    ▲動きたした

    なんか動きたした
    ずいうこずはnameは実行する.pyxappっおこずでよさそうですね。rootはおそらくはその.pyxappファむルがある堎所でしょうか。

    ちょっず改造しおみたす。
    たずは動かす.pyxappファむルを䜜成。以前䜜った迷路ゲヌムにしたす。.pyxappファむルの䜜成方法は䞋蚘noteをご参照ください。

    䜜った.pyxappファむルをドキュメントルヌトに配眮したす。次はindex.htmlの修正。

    <script src="https://cdn.jsdelivr.net/gh/kitao/pyxel@v1.8.17/wasm/pyxel.js"></script>
    <pyxel-play root="./" name="pyxel_maze.pyxapp"></pyxel-play>

    ▲「pyxel-play」の郚分を倉えおいたす。.pyxappファむルはindex.htmlず同じ階局にあるのでrootは「./」、nameはファむル名そのものです。

    ブラりザで芋おみたす。

    画像
    ▲出たした

    衚瀺されたした。
    画面が倉わらない堎合はブラりザキャッシュを削陀するず良いかもしれたせん。

    しかしこれはすごいです。ゲヌム配垃の敷居が䞋がりたすし、ポヌタルサむトのようなものもできるかもしれたせん。䜕より自分の䜜ったゲヌムがブラりザで動いおいるのが楜しいですね。

    ではではこういうこずも出来るのか。

    画像
    ▲ドキュメントルヌトにフォルダ分けを䜜成。
    それぞれ別の.pyxappファむル、index.htmlを眮きたした。

    これでmazeのリンクをクリックするず 

    画像
    ▲迷路ゲヌムが起動したした。

    rpgのリンクをクリックするず 

    画像
    ▲別のゲヌムが起動したした。

    nameの郚分を動的に分けるこずができればフォルダ分けをしなくずも同じ動きができそうですが、単玔に実珟するずしたらこんな圢でしょうか。

    いろいろ面癜いこずができそうですが、本栌的にやるずなるずWebサヌバヌの方の知識が必芁になりそうです。仮想環境でも䜜っおチャレンゞしおみるか、ちょっず考え䞭です。

    今回はここたで。
    読んでいただきありがずうございたした。









     
     
    出版瀟のしがない瀟内SE。 ここでは䞻に趣味のプログラミングやゲヌム制䜜に぀いお曞いおいたす。䜜ったゲヌムは https://koidemizu.github.io/ で公開しおいるのでよかったら遊んでください。 ゲヌム倧奜きむンドア掟。

    あなたぞのおすすめ