# laybtn_boxfb

laybtn_ezbox,laybtn_ezfrmの角丸長方形をサイズ指定で塗りつぶしまたはボーダー描画

laybtn_boxfb p1,p2,p3,p4,r,th

p1=0〜(0) : 矩形の左上X座標
p2=0〜(0) : 矩形の左上Y座標
p3=0〜 : 矩形の右下X座標
p4=0〜 : 矩形の右下Y座標
r=-1〜(0) : 長方形の角の丸みサイズ R
th=0〜(0) : 枠線の太さ(0=塗りつぶし)

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

## 解説

    laybtn_ezbox, laybtn_ezfrm ではボタンサイズに合わせた角丸長方形を描画できますが、この命令を利用することで任意の矩形サイズを指定して塗りつぶしまたはボーダー描画が行えます。

    引数 r で角の丸みサイズを指定します。
    -1 を指定すると laybtn_ezbox, laybtn_ezfrm と同じ自動計算されたRサイズが使用されます。
    0 または省略時は、角丸なしの矩形を描画します。

    引数 th に枠線の太さを指定します。
    0 または省略時は、塗りつぶし描画になります。

    gsquare を用いた半透明塗りつぶしを利用しています。
    color 命令で描画色を指定し、gmode 命令で半透明合成のブレンド率を指定できます。

## サンプル

    #include "mod_layerbutton.hsp"
    // 4つのボタンを作成
    pos 30,20
    repeat 4
    	pos ,ginfo_cy+20  ; ボタンの位置を調整
    	layerbutton 140,50, cnt,0 {
    		if lparam == objlayer_cmddraw {
    			// ボタンの描画
    			color 255,255,255 : font msgothic, 18, 1  ; laybtn_ezboxのテキスト設定
    			laybtn_ezbox $AA9999FF, $AA0000FF, $AA3333AA, "ボックス0"+(objlayer_option+1)
    			// ボタンの無効表示
    			laybtn_enable 0, -1  ; ボタンの有効無効を確認
    			if stat == 0  {
    				if objlayer_option == 3 {
    					// グループ全体を覆うように黒半透明を被せる
    					gmode 3,,,100 : color 0,0,0
    					laybtn_boxfb objgroup_axis_x-10, objgroup_axis_y-10, objgroup_axis_x2+10, objgroup_axis_y2+10
    				}
    			}
    		}
    		return
    	}
    loop
    pos 250, 50 : button gosub "有効/無効",*bt  ; 有効無効の切り替えボタン

    // 表示ループ
    repeat
    	redraw 0 :color 240,240,240 : boxf
    	redraw 1
    await 16
    loop

    *bt
    	if laybtn_length(0) == 0 : return
    	laybtn_enable 0, ena
    	ena = 1 - ena
    	return

## 関連項目

layerbutton | ちょっとリッチなアニメーション付きボタンを作成 | (mod_layerbutton)
laybtn_settings | layerbuttonオブジェクトの動作を設定する | (mod_layerbutton)
laybtn_mes | layerbuttonサブルーチン内用テキスト表示 | (mod_layerbutton)
laybtn_ease | layerbuttonサブルーチン内用イージング値の取得 | (mod_layerbutton)
laybtn_hide | layerbuttonの指定グループを非表示(SHOW_OUT)処理にして削除する | (mod_layerbutton)
laybtn_length | layerbutton指定グループ内のオブジェクト数を取得 | (mod_layerbutton)
laybtn_enable | layerbuttonの指定グループのオブジェクトに有効・無効の設定をする | (mod_layerbutton)
laybtn_width | layerbuttonオブジェクトのサイズや位置を変更する | (mod_layerbutton)
laybtn_focus | layerbuttonの指定グループ内の指定オブジェクトにフォーカスを移動させる | (mod_layerbutton)
laybtn_stick | layerbuttonサブルーチン内用キー入力情報取得 | (mod_layerbutton)
laybtn_ezcel | layerbuttonのcelputを利用した簡単描画 | (mod_layerbutton)
laybtn_ezbox | layerbuttonの角丸長方形塗りつぶしによる簡単描画 | (mod_layerbutton)
laybtn_ezfrm | layerbuttonの角丸長方形枠線による簡単描画 | (mod_layerbutton)
laybtn_hitarea | layerbuttonオブジェクトのタッチ範囲を変更して設定する | (mod_layerbutton)
layerbtn_stat | layerbuttonのボタン状態が代入される | (mod_layerbutton)
layerbtn_cnt | layerbuttonのボタン状態が変更されてからの経過フレーム数 | (mod_layerbutton)

## サンプル逆引き (6)

01 demo.hsp | title "layerbutton demo" log = "" HSP3Dish.js用フォルダ設定 in..
02 demo-stateflow.hsp | title "layerbutton stateflow" log = "" fps2 = 0 HSP3Dis..
05 sample_laybtn_ease.hsp | #include "mod_layerbutton.hsp" ボタン作成 pos 10,100 repeat ..
07 sample_vpad-jujikey.hsp | #include "hsp3dish.as" #include "mod_layerbutton.hsp" #..
09 sample_vpad-analog.hsp | #include "hsp3dish.as" #include "mod_layerbutton.hsp" #..
15 sample_RPG.hsp | title "RPGサンプル" -- 必要モジュール読み込み -- #include "mod_layerbu..

## 情報

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