android上での描画について
amo 2013/7/7(Sun) 13:13:48|NO.55524
現在hsp3dishでandroidアプリを作成しているのですが画面がフルスクリーンではないためか
左上に描画されてしまいます
中央に画面を表示させるにはどうすればいいでしょうか
具体的な解決方法を教えて下さい
流星群 2013/7/7(Sun) 13:59:36|NO.55526
何が左上に表示されているのでしょう?
画面とはwindowsのHSPでいうウィンドウのことでしょうか?
中央に画面を表示させるとはどういうことでしょうか?
androidは何のアプリでもフルスクリーンみたいなものなので、
もし文字などを中央に表示したいのであれば普通にposで済みますし…
atu 2013/7/7(Sun) 14:27:33|NO.55528
HSPに付属のマニュアルの、
HSP3Dish→android(NDK)版プログラミングガイド(hsp3dish_ndk.htm)
→画面サイズのスケーリングについて
の項目をご覧下さい。
もしかしたら、ここで解決するかもしれません。
amo 2013/7/7(Sun) 16:59:34|NO.55534
みなさんご指摘ありがとうございす
私が今作成しているものは実機よりもサイズを小さく作っているのでどうしても左上を中心に描画されてしまって
いますなので描画の中心を画面の中央にもっていけないかということです。
hspの付属マニュアルについては何度も熟読しましたが解決にはいたっていません
FunnyMaker 2013/7/7(Sun) 18:03:21|NO.55535
起動後に、ginfo 関数か何かで実機の解像度を取得した後、「描画の基点」を独自で決めてやればどうでしょうか?
例えば、目的のアプリの画面サイズとして 480×600 を想定しているなら、実機の解像度が A×B
だった場合、描画の基点を (A-480)/2,(B-600)/2 と定めてやり、適当な変数に保存しておけば、
pos命令による座標指定の時に、x,y座標についてそれぞれ、
「想定画面サイズで動いていると仮定したときの座標のx,y成分」+「変数に格納したx,y成分」
と指定してやればOKな気がします。
atu 2013/7/7(Sun) 18:33:38|NO.55540
FunnyMakerさんの書き込みの補足です
screen 0,800,600,0;←実機の解像度を入力してみて下さい
;↓ここから
a = 320;←作成しているアプリの横サイズ(必ず実機の解像度より低い数値を入力)
b = 480;←作成しているアプリの縦サイズ(必ず実機の解像度より低い数値を入力)
sx = (ginfo_sx-a)/2
sy = (ginfo_sy-b)/2
;↑ここまでを、スクリプトの最初に追加
;↓ここから表示テスト
color 0,0,0 : boxf sx,sy,a+sx,b+sy;←画面位置を解りやすくする為に、■を描画
color 255,255,255 : pos 10+sx,10+sy : mes "AAA";//全てのpos、描画系命令の座標指定に、+sx,+syを追加
stop
これでどうでしょう。
しまくろねこ(おにいさん) 2013/7/7(Sun) 21:07:20|NO.55543
amoさんこんにちわ。
画面を中央に表示したいというのは、表示する大きさはそのまま(例:実機480*800、アプリ320*480)で、表示する内容を画面に中央に配置したいということでしょうか?
それとも表示する内容を実機の画面全体に表示したいのでしょうか?
前者であれば、FunnyMakerさんやatuさんの言われている通り、基点となる描画位置をあげれば良いかと思います。
後者であれば、忘れてしまうので以下に自身の勉強も兼ねてまとめてみました。
■Windows上(または開発時)での画面サイズ変更
・Android/iOS向け
HSP3Dishを利用すると開発時の画面サイズは320*480になっています。
起動設定ファイル(hsp3dish.ini)をソースと同じフォルダに置くことで画面サイズを変更可能です。
〜起動設定ファイル(hsp3dish.ini)の中身〜
; hsp3dish settings
wx=320
wy=480
・Windows用の実行ファイル(*.EXE)向け
HSP3Dishを利用してWindows用の実行ファイルを作成することができますが、起動設定ファイル(hsp3dish.ini)は適用されません。
Windows用の実行ファイルを作成する場合は、#packopt命令にて画面サイズを変更できます。
#packopt name "ファイル名"
#packopt xsize 320 ; 横サイズ
#packopt ysize 480 ; 縦サイズ
■アプリをビルド時の画面サイズ変更
起動設定ファイル(hsp3dish.ini)を利用しても、Android実機の解像度とWindows上で開発しているアプリのサイズが一致しないことがある多々あると思います。
例えば、実機の解像度が480*800で、開発しているアプリのサイズが320*480とします。
このまま実機にアプリをインストールし起動しても、実機の解像度が開発したアプリよりも大きいため右下側に使われない黒い領域が出てきます。(左上を表示の基点としているので)
そこで、アプリをビルドする際にプロジェクトフォルダ内の「jni\main.c」を編集すること(下記)によりアプリの表示するサイズを変更することができます。
「jni\main.c」の一部
//hgio_view( 320, 480 ) ;表示するアプリのサイズ
//hgio_scale( 1.0f, 1.0f ) ;指定の倍率で表示
//hgio_autoscale( 0 ) ;画面のスケーリング(拡大縮小)を自動的に調整
hgio_autoscaleによるスケーリングのスケーリング方法
> 0 : 画面全体に収まる最適な大きさ(縦横比は維持)
> 1 : X方向のサイズを基準に拡大縮小(縦横比は維持)
> 2 : Y方向のサイズを基準に拡大縮小(縦横比は維持)
> 3 : 縦横比は無視して画面全体に表示
指定の倍率で表示させたい場合は、hgio_view行とhgio_scale行のコメントを外す。
画面を自動的に拡大縮小して表示させたい場合は、hgio_view行とhgio_autoscaleのコメントを外す。
320*480以外のサイズで画面全体に表示させたい場合は、起動設定ファイル(hsp3dish.ini)とスケーリング(main.c)を一緒に使用すると良いです。
amo 2013/7/7(Sun) 23:30:55|NO.55544
本当にみなさんたくさんのご意見ありがとうございます。
最後にひとつだけお願いしたいのですが
起動設定ファイル(hsp3dish.ini)について初心者でも分かるように解説していただけないでしょうか?
しまくろねこ(おにいさん) 2013/7/7(Sun) 23:48:50|NO.55545
起動設定ファイル(hsp3dish.ini)の詳細は、HSP3がインストールされているフォルダの「doclib\hsp3dish_prog.htm」内に
「HSP3Dish プログラミングマニュアル・基本仕様ガイド」 の 「起動設定ファイルについて」で記載されています。
起動設定ファイル(hsp3dish.ini)はHSP側で作ってくれるわけではありませんので、メモ帳等のテキスト編集ソフトで自分で作成する必要があります。
〜「HSP3Dish プログラミングマニュアル・基本仕様ガイド」から抜粋〜
>起動設定ファイルについて
>
>通常の起動時は、画面のサイズは320x480に固定されています。
>これは、iPhone(3G)に合わせたサイズですが、起動設定ファイルを用意することにより、画面サイズを変更することができます。 (HSP3Dishは、画面サイズは起動時に決定され、screen,width命令での変更はできません)
>
>起動設定ファイルは、「hsp3dish.ini」というファイル名でスクリプトと同じフォルダに置かれている場合に反映されます。 以下は、設定ファイルの記述例です。
>
> ; hsp3dish settings
> wx=320
> wy=480
>
>行の先頭から「wx=横サイズ」「wy=縦サイズ」を書くことで反映されます。 「;」で開始される行はコメントとみなされます。 異なるデバイスでの動作を想定する場合などに、起動設定ファイルを用意して実行を行なってください。
amo 2013/7/8(Mon) 01:54:25|NO.55549
たくさんのご意見ありがとうございます
さっそく実践してみたいと思います
本当にありがとうございました