デッキエディタ開発記録 vol.39 – スマホのアスペクト比問題について

皆さんこんにちは、ノリで「プレイマットつけました笑」とかやってみたら、一人回しシミュレータにややこしい問題が発生したので反省している管理人です。

ご利用中の皆様には申し訳なかったです。

 


今回の問題について

本来見切れているはずの領域が、機種によっては描画されていた事により、左側に寄ったレイアウトになっていました。

描画周りのスクリプトは「正常に表示されている前提」で各種計算を行っていたので、なんか色々おかしなことに。

これは調査を進めていくと、先日のプレイマットアップデートが原因ではなく、ずっと発生していたと言う事がわかりました。

いや、ホントすみません。

手元にある検証機の最大解像度が16:9までしか無いため、それを超える解像度の検証は基本的にしていないことによる弊害が出ちゃいましたね。

 


解決策として

近年のスマホは、ガラケーの時代と同じく「画面サイズの種類多すぎ問題」が再び発生しています。

それを見越して大枠の寸法は相対値で指定して、それの実寸を取得する手法にて実装をして来ました。

が、ついには21:9と言うビックリサイズのディスプレイが登場してしまったようで、早々に縦基準相対値は限界を迎えることとなりました。

このままでは破綻したままなので、新たな作戦を考えました。

題して、

みんな16:9になぁれ作戦

コレです。

読み込み時にスクリーンサイズを取得し、比率を計算。

16:9を超えている場合は実寸を取得後、超過分の寸法を算出して100%から減算して高さを固定、UIの仕様上、画面は下付けになるように上部マージンを設定する。

なんのこっちゃか分からんと思うので、エミュレータ(※19.5:9までしか出来なかったので21:9は未検証です。)での描画結果のスクショを撮りましたのでご覧ください。

こんな感じ。

どんな機種が来ても「シミュレータ部分は全部16:9で固定すれば調整要らないでしょ?」って言う雑な作戦ですが、マルチカウンターが表示されているので、そこまで変な感じにはならないのかなと思います。

プレイマット部分にカードのタイプテキスト部分が表示されてますが、これは今後サイレントアップデートしますので、気づいたら直ってるわ状態でお願いします。

 

とりあえずこれで様子見しますので、まだ変な感じの場合はご連絡ください。

あと、念のため画面確認時には1度ブラウザのリロードをよろしくお願いします。

雑談

Posted by theuri