laybtn_ezbox

layerbuttonの角丸長方形による簡単描画

laybtn_ezbox id,no,"strings",zx1,zy1,zx2,zy2, r

col1=$000000〜$FFffffff(0) : 通常表示 ARGB形式 カラーコード値
col2=$000000〜$FFffffff(0) : フォーカス時 ARGB形式 カラーコード値
col3=$000000〜$FFffffff(0) : 押し込み時 ARGB形式 カラーコード値
"strings" : 表示するメッセージ、または変数
sw=0〜(0) : mesオプション[mes命令と同様]
zx1 : 文字を中心位置からずらす量(x方向)
zy1 : 文字を中心位置からずらす量(y方向)
zx2 : ボタン押し込み時に文字をさらにずらす量(x方向)
zy2 : ボタン押し込み時に文字をさらにずらす量(y方向)
r=0〜(Auto) : 長方形の角の丸みサイズ R(アール)

(プラグイン / モジュール : mod_layerbutton)

解説

layerbuttonはサブルーチン内で layerbtn_stat の各種状態に合わせてユーザーが描画処理をする必要があります。
この命令を利用することで「表示」「フォーカス」「決定」「非表示」の一連の描画処理を1命令で簡易的に指定できます。

gsquare を用いた半透明塗りつぶしを利用しています。
引数 col1, col2, col3 にそれぞれ通常表示、フォーカス時、押し込み時のカラーコードを ARGB形式で指定します。
$FFffffff は #AARRGGBB 形式であり、先頭の FF(AA)部が不透明度(アルファ値)を表します。
なお、$RRGGBB のようにアルファ値 AA を省略するなどして 00 が指定された場合は、 アルファ値 $FF(255) を補完し、 0xFFRRGGBB として解釈します。

自動で角丸長方形を描画しますが、引数 r で角の丸みサイズを変更でき、0 にすると矩形を描画します。

より細かく描画を制御したい場合は、layerbtn_stat, layerbtn_cnt を利用して個別に描画を記述してください。


上記引数の後に続けて、以下引数も指定することができます。
zx3 : ボタン全体のずらし量(x方向)
zy3 : ボタン全体のずらし量(y方向)
sx1 : ボタンサイズの拡大または縮小ピクセル数(x方向)
sy1 : ボタンサイズの拡大または縮小ピクセル数(y方向)

サンプル

#include "mod_layerbutton.hsp"

log = ""
pos 50, 50
repeat 3
	pos ,ginfo_cy+10
	bt_opt += 100
	layerbutton 180,60, bt_opt, 0, 30,10,5, 15,5,2 {
		if lparam != objlayer_cmddraw : return  ; _cmddraw以外無視
		font msgothic,16,1 : color 240,240,255 : objcolor 0,0,100  ; 文字色 / 縁取り色
		laybtn_ezbox $0000FF, $8800FF, $8888FF, "ezboxボタン "+objlayer_option,4  ; ボタン描画
		if layerbtn_stat != LAYBTN_COMPLETE_SELECTED : return  ; 押したボタン以外無視
		log += "LAYBTN_COMPLETE_SELECTED" +"\n"
		log += "- OPT="+objlayer_option+", ObjID="+wparam +"\n"
		return
	}
loop
repeat
	redraw 0 : color 255,255,255 : boxf : color : pos 0,0 : font msgothic,16
	mes log
	redraw 1
	await 1000/60
loop

関連項目

layerbuttonちょっとリッチなアニメーション付きボタンを作成(mod_layerbutton)
laybtn_settingslayerbuttonオブジェクトの動作を設定する(mod_layerbutton)
laybtn_meslayerbuttonサブルーチン内用テキスト表示(mod_layerbutton)
laybtn_easelayerbuttonサブルーチン内用イージング値の取得(mod_layerbutton)
laybtn_hidelayerbuttonの指定グループを非表示(SHOW_OUT)処理にして削除する(mod_layerbutton)
laybtn_lengthlayerbutton指定グループ内のオブジェクト数を取得(mod_layerbutton)
laybtn_enablelayerbuttonの指定グループのオブジェクトに有効・無効の設定をする(mod_layerbutton)
laybtn_widthlayerbuttonオブジェクトのサイズや位置を変更する(mod_layerbutton)
laybtn_focuslayerbuttonの指定グループ内の指定オブジェクトにフォーカスを移動させる(mod_layerbutton)
laybtn_sticklayerbuttonサブルーチン内用キー入力情報取得(mod_layerbutton)
laybtn_ezcellayerbuttonのcelputを利用した簡単描画(mod_layerbutton)
laybtn_hitarealayerbuttonオブジェクトのタッチ範囲を変更して設定する(mod_layerbutton)
layerbtn_statlayerbuttonのボタン状態が代入される(mod_layerbutton)
layerbtn_cntlayerbuttonのボタン状態が変更されてからの経過フレーム数(mod_layerbutton)

サンプル逆引き (6)

01 demo.hsptitle "layerbutton demo" log = "" HSP3Dish.js用フォルダ設定 in..
02 demo-stateflow.hsptitle "layerbutton stateflow" log = "" fps2 = 0 HSP3Dis..
03 sample_minimal-ezbox.hsp#include "hsp3dish.as" #include "mod_layerbutton.hsp" l..
06 sample_settings.hsp#include "mod_layerbutton.hsp" gosub *create_button_hid..
08 sample_vpad-jujikey-noimg.hsp#include "hsp3dish.as" #include "mod_layerbutton.hsp" #..
12 sample_keybdmod.hsptitle "mod_layerbutton-keybd サンプル" HSP3Dish.js用データフォルダ設..

情報

プラグイン / モジュールmod_layerbutton
バージョン1.1
作成日2025/9/24
著作者MIZUSHIKI
URLhttps://suwa.pupu.jp/HSP/index.html
備考layerobj命令を利用して、ちょっとリッチなアニメーション付きボタンを比較的簡単に作成することができます。
*/ /////////////////////////////////////////////////////////////////////////////
#if 0
// hs ファイル //////////////////////////////////////////////////////////////
タイプ拡張命令
グループ画面制御命令
対応環境・Windows 版 HSP