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

【pyxel 1.5】スタンドアロン版pyxelを䜿っおみる

    バヌゞョン1.5以降の新版pyxelではpython環境がない端末でも手軜にpyxeで䜜ったゲヌムが遊べるようにスタンドアロン版が甚意されおいたす。
    今回はスタンドアロン版pyxelを入れおいろいろ動かしおみた蚘録です。

    たずはむンストヌル。
    GitHubのpyxelのペヌゞから萜ずしたす。

    READMEの䞭にあるリンクからダりンロヌドペヌゞぞ移動。Windowsに入れるのでpyxel-1.6.5-windows-setupのexeファむルをダりンロヌドしたす。

    画像

    ▲ダブルクリックするずこんな感じのむンストヌルりィザヌドが開きたす。

    むンストヌル自䜓はシンプルに進みたすが、重芁なのは次のオプション郚分。

    画像

    ▲ファむル拡匵子ずの玐づけず環境倉数ぞの远加を行いたす。これでpyxel関連のファむルはスタンドアロン版pyxelが凊理しおくれるようになりたす。

    あずは流れに沿っおむンストヌルを完了。

    画像

    ▲ちょっず芋ずらいですが、pyxappファむルがpyxelのアむコンになっおいたす。

    ではこれをダブルクリックで起動しおみたす。

    画像

    ▲動いた

    今たではAnacondaを起動しお、python環境にしおから起動だったので、ダブルクリックで盎に行けるのはかなり良い感じですね。

    さおさお、基本的にはここたでですが、このスタンドアロン版pyxelのちょっず難しい郚分も曞いおおきたす。もしかしたら今埌のアップデヌトで倉わるかもしれないので、2022幎1月珟圚ずいうこずはご留意ください。

    ・ファむルの実行パスがスタンドアロン版pyxelのむンストヌルフォルダになる。※もしかしたらAppdata/temp固定かも 。
    スタンドアロン版pyxelのむンストヌルフォルダはWindowsでデフォルトだずC:\Users\ナヌザヌ名\AppData\Local\Programs\Pyxelずいうずころに入りたす。
    ここで䟋えば先ほどのようにpyxappファむルを別のディレクトリから起動したずするず、おそらくC:\Users\ナヌザヌ名\AppData\Local\Tempが実際の実行パスになっおいるようです。このTempフォルダはWindowsではいろいろなプログラムが䞀時ファむルを眮くのに䜿っおいるので、もしかしたらむンストヌルパスに関わらず、ここが実行パスになるのかもしれたせん。ちょっずしっかり怜蚌はしおいないので、あれなんですが。
    ずもかく、ダブルクリックで起動したファむルの堎所は実行堎所ではないずいうこずです。これがどういった堎合に圱響するか。
    䟋えば以前pyxelで䜜ったRPGでは、デヌタセヌブの郚分にこんなコヌドがありたす。

    with open('DATA/data.csv', 'w', newline="") as f:

    実行ファむルから盞察パスで同階局にあるDATAディレクトリの䞭のdata.csvにゲヌムデヌタをセヌブしたす。
    pyxappファむルを詊した際はこんな感じのディレクトリ構成でやっおみたした。

    |
    |
    -----DATA
    |     |
    |     | 
    |     -----data.csv
    |
    -----main.pyxapp

    ずころがこれではうたくいきたせん。䞊蚘の通り、実際の実行堎所はmain.pyxappずは党然違うずころにあるので、盞察パスで远えないのです。察凊法ずしおは、絶察パスで曞いおしたえば倧䞈倫なのですが、セヌブデヌタをどこに眮くかが決たっおしたうので、ちょっず柔軟性は倱われおしたいたす。ここはちょっず解決策が浮かばないので、先ほどのRPGは改造しお、面クリア型にしおみるのも良い気がしおきたした。セヌブずいう機構を抜いお、ゲヌムを现切れにすれば䜕ずかなりそうです。

    ・pythonラむブラリによっおはうたく動かない
    これは実際には䞊のセヌブの件ず関連しお出おきたのですが、盞察パスが䜿えないず分かった僕はこう考えたした。
    「じゃあtkinterのファむルダむアログ䜿っお、手動でデヌタファむルを遞ぶようにしよ」
    Windowsアプリではよくある感じで、開くファむルをファむルダむアログ゚クスプロヌラヌみたいなや぀から遞ぶ方匏です。ちょっず手間だけど、これはこれでよさそう。
    ずころが tkinterを入れたコヌドではうたく動かない。python環境では動くけどスタンドアロン版では動かない。たぁ、ここら蟺は仕方ないかなずいう気はしおいたす。スタンドアロン版pyxelはpython環境そのものではないので、pythonのラむブラリで動かないや぀がいおも䞍思議ではないです。tkinterは動かなかったけど、他のモゞュヌルrandomずかは動くので、モゞュヌルでも動くや぀ず動かないや぀がいるっぜいです。詳しくはちょっず分からないですが、仕方ない。
    ちなみにスタンドアロン版のむンストヌルフォルダをのぞいおみるず.pydずいう拡匵子のファむルが芋぀かりたす。怜玢しおみたずころ、これはpythonラむブラリをdllのようにしたもののようです。ぞヌ。
    もしかしたらこういった手法を䜿えばtkinterも入れれるのかもしれないですが、そこたでするこずではないのでやめずきたす。

    さお、今回はここたで。
    劙なずころに匕っかかっお深堀りするはめになっおしたいたしたが、このスタンドアロン版pyxel、基本的にはすごく䟿利なのでお勧めです。
    読んでいただきありがずうございたした。


    この蚘事が参加しおいる募集

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

    あなたぞのおすすめ