2ntブログ

モニタ解像度2560*1440問題の報告

何かの拍子が思いのほか早く訪れたのでご報告。

ひとまず下載ファイルが対処版になります。
これで2560*1440でも動くという確信はまだ得られてないですが、よければ。
https://33.gigafile.nu/0922-ddd2572211bed97c9e003d492936a1f5c


以下は問題の詳細で、多分RPGツクールユーザ向けの内容。
今後同様の問題に遭遇する人がいるかもしれないので一応書き残しておきます。正直Rubyのことが良くわかってるとは言いがたいので、どっかしら間違ってたらご指摘いただければ幸いです。

まず、不具合の条件となっていたのは「2560」という数値そのものでした。
少なくとも私が把握しているもののなかでより正確に申し上げれば「2560~2815(0xA00~0xAFF)」の範囲内にある値が今回の問題を発生させる因子となるようです。

コード内での原因はArray#packとString#scanの併用です。
2560~2815周辺の数値を 'l' で pack してみたところ
[2559].pack('l') -> "\xFF\t\x00\x00"
[2560].pack('l') -> "\x00\n\x00\x00"
[2815].pack('l') -> "\xFF\n\x00\x00"
[2816].pack('l') -> "\x00\v\x00\x00"
このようになり、当該の2560と2815では二文字目が \n 即ち改行コードとして認識され scan の際に不都合な結果を取得していました。

この投稿の前日にご協力いただいた動作確認用のゲームファイルでも、プライマリモニタの解像度を取得し、縦横長の数値配列を pack 後に scan している部分があり、見事、ひっかかってしまったものと想定されます。

コメントの投稿

非公開コメント

No title

2560*1440 win7 64bitで無事動作、各ブロック順序も正常でした。流石です:ー)

Re: No title

前回に引き続きありがとうございました。
これで憂いなく本編開発に……
うりもの
ボツ絵リサイクルHCG集 壱セントヘレナ
リンク
多々買え‥‥
うりば
DLsite FANZA
カテゴリ
月別アーカイブ
検索フォーム