
ひさびさにpyxelで遊ぼうと思ったら詰まった。
最近仕事が忙しかったり、PS4のフリープレイでバットマンになっていたりでpyxelをいじる機会が中々無かったのですが、ひさびさに遊んでみました。
PC自体がおかしくなっていたこともあり、Anaconda自体から入れ直してみました。が、以前のファイルがなぜか動かない。ソースはいじってないし、なんじゃこれ。結果的には解決したのですが、思ったより時間がかかってしまったので記録しておきます。
まず、AnacondaのSpyderでの実行時に出てきたエラーが以下になります。
OSError: exception: access violation reading 0x000000E6C0BF0000
何のこっちゃですね。エラー箇所はpyxelの__init__.pyの中。イメージソースの.pyxelファイルを読むところのような気がします。
この原因はpyxelのバージョンアップに伴うイメージソースの拡張子変更でした。何の気なしに入れていたのはバージョン1.2でイメージソースは.pyxelから.pyxresに変更されていました。
というわけで以前作った.pyxelファイルを.pyxresファイルに変換していきたいと思います。この変換機能はバージョン1.1で使えるみたいなので、Anacondaの別環境に以下のコマンドでインストールします。
pip install pyxel==1.1.8
この状態でターミナルからpyxeleditorコマンドで該当の.pyxelファイルを開いてみると、
load as old pyxel format
「旧フォーマットで読み込まれた」旨のメッセージが出てきました。
この状態でpyxeleditorから保存を実行すると新しい.pyxresの形式でファイルが保存されます。ここまではOKそうです。
あとは以前書いた.pyファイルの修正です。イメージソースのファイル名を変更すると、動くようになりました。これでたぶん大丈夫ですね。
アップデートされたpyxelにはいろいろな追加機能がありそうです。.exeファイルに変換することもできるようなので、今度はそちらも試してみたいと思います。