先日のdialog playにさらに手を加えて、以前プレイしたTRPGのリプレイをノベルゲーム風に仕立てあげてみた。




先回と違うのは
  • オープニング画面がある
  • ちょっとしたアニメーションがついてる
  • セーブ&ロード
  • といったところで大したことはないんだけれど、ひとまずGUIに画面を描画するシステムについてはだいたい理解できたと思う。


    pygameをcx_Freezeでexe化するとき、うまくいかないことがあるようだ。いまだによく分かってはいないのだけれど、今回のスクリプトでの手順を書いておく。
      1. スクリプトに import re を足す
      3. 完成物に外部ファイルは含まれておらんので画像ファイルとかフォントファイルを同梱する
      4. oggファイルを使用している場合、 Python34¥Lib¥site-packages¥pygame に入ってる libogg.dll, libvorbis.dll, libvorbisfile.dll のみっつを加えて同梱する
    これで他の人に配布できるようにまでは漕ぎ着けられた。もともとcx_Freezeではoggファイルを読み込む実行ファイルが作れないようなのだが、上記のみっつの拡張機能を加えればオーケーだ。stackoverflowにあった情報だが、いや、これを発見した人はスゴいと思うぜ。質問投げたはいいものの結局自己解決したようなんだけれど、それでもきちっと解決法を記してくれており多謝だ。厄介だったのは1.と4.だが、なんだかpygameのexe化に関する情報って日本語のページがあんまり無いのよな。ひいこら言いながら英語読んでる。

    # 同日追記
    試しに import re 無しでやってみたところ普通に起動できちまった。参考にしたフォーラムで「pygameのexecutableうまくいかないよー」「import re つけてみたら」みたいな記事があったのでとりあえずでつけておいたんだが、今回の場合は必要なかったようだ。