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