sample\sample_mobile-ratio\
sample13_mobile-ratio.hsp
#include "hsp3dish.as" #include "ezlocal-dish-js.hsp" ezLocalJS ; ------------------------------------------------------------------------------ ; - スマホの解像度や表示比率に合わせてプログラミングする方法 ; ------------------------------------------------------------------------------ ; hsp3dish.ini に、 ; wx_mobile = ENV.HSP_SX ; wy_mobile = ENV.HSP_SY ; を追記することで画面の解像度や比率をスマホに合わせてゲームを製作することができます。 ; ; -- 縦向き型ゲームの場合 (横幅解像度固定、高さ可変) ; ---------------------------------------------- ; スマホの解像度に合わせると例えば 980 x 1862 等の大きなサイズでゲームを ; 作っていくことになり、解像度が高すぎてしまう場合があります。 ; そういった場合は例えば、横幅解像度を640に固定して ; wx_mobile = 640 ; wy_mobile = Math.round(ENV.HSP_SY * 640 / ENV.HSP_SX) ; と記述することで、先程の例の比率で 640 x 1216 のサイズでゲーム画面が初期化されます。 ; ; -- 横向き型ゲームの場合 (高さ解像度固定、横幅可変) ; ---------------------------------------------- ; 横幅固定はスマホを縦向きで使用するゲームの場合です。 ; スマホを横向きで使うために「スマホ横向き全画面FIT」を設定している場合は ; 縦方向の解像度を固定します。 ; wx_mobile = Math.round(ENV.HSP_SX * 520 / ENV.HSP_SY) ; wy_mobile = 520 ; ; ※ この画面初期化サイズは ginfo_sx, ginfo_sy で取得することができます。 // 実際にHTMLの中でどういった解像度で初期化されているかJavaScriptの変数内容を取得 exec {" HEAP32["}+varptr(ENV_HSP_WX)+{" >> 2] = ENV.HSP_WX; HEAP32["}+varptr(ENV_HSP_WY)+{" >> 2] = ENV.HSP_WY; HEAP32["}+varptr(ENV_HSP_SX)+{" >> 2] = ENV.HSP_SX; HEAP32["}+varptr(ENV_HSP_SY)+{" >> 2] = ENV.HSP_SY; "} *main redraw 0 : color 220,220,220 : boxf gosub *draw_wakusen color : pos 0,0 gfilter 1 ; ← 画面の拡大縮小時の文字つぶれにある程度の効果 mes "【スマホの表示領域ぴったりに初期化】" mes "" mes "動作解像度 : " mes " ENV.HSP_WX="+ ENV_HSP_WX mes " ENV.HSP_WY="+ ENV_HSP_WY mes "" mes "表示解像度 : " mes " ENV.HSP_SX="+ ENV_HSP_SX mes " ENV.HSP_SY="+ ENV_HSP_SY mes "" mes "ginfo値 : " mes " ginfo_sx="+ ginfo_sx mes " ginfo_sy="+ ginfo_sy mes "" mes "PCの場合は 480 x 600 、" mes "スマホなら画面いっぱいに表示される解像度になります。" mes "" mes strf("%02d:%02d:%02d",gettime(4),gettime(5),gettime(6)) pos 0, ginfo_sy-ginfo_mesy mes " ↓ ここまで描画領域が広がります。" gfilter 0 redraw 1 await 16 goto *main // サイズ感を把握するための枠線を描画 *draw_wakusen color 255 line 0, 0, ENV_HSP_WX/2, 0 : line 10, 10, ENV_HSP_WX/2, 10 line 0, 0, 0, ENV_HSP_WY/2 : line 10, 10, 10, ENV_HSP_WY/2 line ENV_HSP_WX-1, ENV_HSP_WY-1, ENV_HSP_WX/2, ENV_HSP_WY-1 : line ENV_HSP_WX-11, ENV_HSP_WY-11, ENV_HSP_WX/2, ENV_HSP_WY-11 line ENV_HSP_WX-1, ENV_HSP_WY-1, ENV_HSP_WX-1, ENV_HSP_WY/2 : line ENV_HSP_WX-11, ENV_HSP_WY-11, ENV_HSP_WX-11, ENV_HSP_WY/2 return