%ver
3.7
%date
2025/08/12
%group
入出力制御命令

%type
ユーザー拡張命令

%note
mod_vpad.asをインクルードすること。

%author
onitama

%dll
mod_vpad

%port
Win
%index
hspvpad_init
バーチャルパッドの初期化
%prm
p1,p2,p3,p4
p1(0) : パッド画像を格納するバッファID
p2(0) : パッド配置(1=左PAD/2=上PAD/4=移動のみ)
p3(0) : ボタン配置オフセット(X)
p4(0) : ボタン配置オフセット(Y)
p5(0) : ボタン配置スクリーンサイズ(X)(0=デフォルト)
p6(0) : ボタン配置スクリーンサイズ(Y)(0=デフォルト)
%inst
バーチャルパッドを初期化して使用できる状態にします。
バーチャルパッドはゲームなどで使用する4つの方向と4つのボタンを画面に表示してタッチ等で利用できるようにしたものです。
p1パラメーターで、パッド画像を格納するバッファIDを指定します。ここで指定したバッファに、HSPTV素材である「vpad.png」ファイルが読み込まれます。
p1を省略または0に指定した場合は、未使用のバッファIDが使用されます。
p2パラメーターで、バーチャルパッドを表示する位置を指定します。以下の値を指定することができます。
^p
   値  : 動作
 -----------------------------------------------------
   1   : 移動とアクションボタンの位置を入れ替える
   2   : バーチャルパッドの表示位置を画面上部にする
   4   : バーチャルパッドの表示を移動のみにする
^p
これらの値は、加算することで同時に指定することができます。
また、(p3,p4)パラメーターでボタン位置X,Y(オフセット)により配置を微調整することができます。
(p5,p6)パラメーターにより、設置する際の画面サイズを指定することができます。0または省略した場合は、デフォルトのスクリーンサイズが適用されます。
初期化が完了したら、hspvpad_key、hspvpad_put命令によってバーチャルパッドを使用することができます。
詳しくは、それぞれの命令のヘルプを参照してください。
%sample
	#include "mod_vpad.as"
	hspvpad_init
	repeat
		stick key,$ffff
		hspvpad_key key
		redraw 0
		color 0,0,0 : boxf : rgbcolor $ffffff
		pos 0,0 : mes "key = " + key
		hspvpad_put
		redraw 1 : await 30
	loop

%href
hspvpad_key
hspvpad_put
stick


%index
hspvpad_key
バーチャルパッドのキー処理
%prm
var
var : stickで値を取得した変数名
%inst
バーチャルパッドのキー処理を行います。
必ず、hspvpad_init命令によってモジュールの初期化を行ってから使用してください。
呼び出し時に、varパラメーターで変数を指定します。
^p
	stick key,$ffff
	hspvpad_key key
^p
上のように、あらかじめstick命令でキーの内容を取得したものを指定します。
これにより、バーチャルパッドにタッチされた値が同じ変数に代入されることになります。
バーチャルパッドで取得された情報は、そのままstick命令と同じ値が使用されますので、後は通常のstick命令と同様に処理を行ってください。

%href
hspvpad_init
hspvpad_put
stick



%index
hspvpad_put
バーチャルパッドの表示処理
%prm
p1
p1(0) : 強制ONを行うkey値
%inst
バーチャルパッドの表示処理を行います。
必ず、hspvpad_init命令によってモジュールの初期化を行ってから使用してください。
p1パラメーターで、ボタンが押された状態にするキー情報を指定することができます。
ここで指定されたボタンの値は、表示時に押された状態(色が濃いアイコン)になります。
p1パラメーターを省略または0に指定した場合は、hspvpad_key命令で受け付けたボタンがONになります。

%href
hspvpad_init
hspvpad_key


%index
hspvpad_set
バーチャルパッドのボタン位置調整
%prm
p1,p2,p3
p1(0) : ボタンID(0=上/1=下/2=左/3=右/4=チェック/5=〇/6=△/7=×)
p2(0) : X位置(絶対座標) (マイナス値の場合は表示なし)
p3(0) : Y位置(絶対座標)
%inst
バーチャルパッドのボタン位置調整を行います。
必ず、hspvpad_init命令によってモジュールの初期化を行ってから使用してください。
p1パラメーターで、ボタンID(ボタンの種類)を指定することができます。
ここで指定されたボタンの位置を、(p2,p3)で指定した座標に置き換えます。
X位置にマイナス値を指定した場合は、該当するボタンは表示を含めて処理されなくなります。
%href
hspvpad_init
hspvpad_key


%index
hspvpad_stick
バーチャルパッドのキー置き換え
%prm
p1,p2
p1(0) : ボタンID(0=上/1=下/2=左/3=右/4=チェック/5=〇/6=△/7=×)
p2(0) : キー値(stick命令のキー情報値)
%inst
バーチャルパッドのボタンが押された際のキー情報を置き換えます。
必ず、hspvpad_init命令によってモジュールの初期化を行ってから使用してください。
p1パラメーターで、ボタンID(ボタンの種類)を指定することができます。
ここで指定されたボタンのキー情報を、p2で指定した値に置き換えます。
キー情報の値は、stick命令で取得されるキーの値を使用することができます。
%href
hspvpad_init
hspvpad_key
stick



