バグ:スキンにResource\Image\CardBg\LARGE.bmpがないとフリーズ

Issue #534 resolved
暗黒 騎士 created an issue

起動時およびスキン切り換え時に確認。

Version : 2.0 Beta 2 / 2017-06-11 01:05:42
DateTime: 2017-06-13 16:46:15
Traceback (most recent call last):
  File "cw\thread.pyo", line 730, in run
  File "cw\thread.pyo", line 760, in _run
  File "cw\thread.pyo", line 769, in main_loop
  File "cw\eventhandler.pyo", line 113, in run
  File "cw\eventhandler.pyo", line 626, in executing_event
  File "cw\thread.pyo", line 1945, in set_yado
  File "cw\thread.pyo", line 476, in update_skin
  File "cw\thread.pyo", line 593, in update_scale
  File "cw\data.pyo", line 177, in update_scale
  File "cw\sprite\card.pyo", line 534, in update_scale
  File "cw\sprite\card.pyo", line 567, in update_image
  File "cw\image.pyo", line 725, in get_image
  File "cw\image.pyo", line 1336, in smoothscale
ValueError: Cannot scale to negative size

必須ファイルを変える側が悪いんですが、スキンをカスタマイズ中にはわりと起こりえる事故だと思いますし、(とりあえず差し替えようとした初心者が遭遇するとバイバイ案件) 設定ダイアログでの切り替えで発生するとタスクマネージャから殺すしかないので、 エラー回避コードを入れたり、あるいはスキンベースにダミー素材を置くなりした方がいいのではと思ったので課題を立てておきます。

Comments (5)

  1. k4nagatsuki repo owner

    pull request #1928

    元々イメージが存在しない時には空のイメージを作るようにしているのですが、その空のイメージのリサイズを行おうとすると別の問題が発生します。今回のエラーはそれです。

    一応リソースが無い時は警告を出すようにしましたが(元々あったが機能していなかった)、今回のような個別の問題は残っていると思われます。

  2. 暗黒 騎士 reporter

    お疲れ様です。フリーズしなくなっているのを確認しました。

    一応リソースが無い時は警告を出すようにしました

    ソースで実行した場合にはコマンドプロンプトとダイアログにリソースエラーが出ているのですが、 どうも実行ファイルではUnicode問題が起きているようでダイアログが出ていません(終了時ログ出力)

    Traceback (most recent call last):
      File "cw\frame.pyo", line 331, in OnEXECFUNC
      File "cw\setting.pyo", line 2003, in errfunc
      File "C:\Python27\lib\site-packages\py2exe\boot_common.py", line 67, in write
        self._file.write(text)
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
    
  3. 暗黒 騎士 reporter

    sys.stderr.writeが原因ぽいですね。消してビルドしたらダイアログが出るようになりました。

    それとおそらくself._put_nokeyvalue(key)を消した事による影響でシステム効果音が鳴らなくなっているようです。 (効果音コンテントは鳴る)

  4. k4nagatsuki repo owner
    • pull request #1929
    • pull request #1930

    エラーログに非ASCII文字を出そうとするとそこでエラーになる事をすっかり忘れていました。以前取り組んだ時はどうにもならなかったのでエラーログには英文で出す事にします。Python 3なら解決しているはず……。

  5. 暗黒 騎士 reporter

    あっ、終了時エラーログが出てしまうこと自体は意図された仕様なんですね。 真上のログと混ざってうっかり誤報告するところでした…

    修正確認しました。ではこれで解決とします。

  6. Log in to comment