# laybtn_ezcel

layerbuttonのcelputを利用した簡単描画

laybtn_ezcel id,no,"strings",zx1,zy1,zx2,zy2

id=0〜(1) : 画像素材を持つウインドウID
no=0〜(0) : 分割画像No.(SHOW_INで使用する画像No.)
"strings" : 表示するメッセージ、または変数
sw=0〜(0) : mesオプション[mes命令と同様]
zx1 : 文字を中心位置からずらす量(x方向)
zy1 : 文字を中心位置からずらす量(y方向)
zx2 : ボタン押し込み時に文字をさらにずらす量(x方向)
zy2 : ボタン押し込み時に文字をさらにずらす量(y方向)

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

## 解説

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

    描画には celput を利用しており、事前に celdiv で分割サイズを指定しておく必要があります。
    celload で読み込む画像は SHOW_IN, FOCUS_IN, PRESS_IN に対応する画像を順に並べておいてください。

    引数 no に SHOW_IN で使用する分割画像No.を指定することで、FOCUS_IN(+1), PRESS_IN(+2) の画像No.も指定したことになります。

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

    上記引数の後に続けて、以下引数も指定することができます。
    zx3 : ボタン画像ずらし量(x方向)
    zy3 : ボタン画像ずらし量(y方向)
    rx1 : ボタンサイズによらず画像の表示倍率を強制的に指定(x方向)
    ry1 : ボタンサイズによらず画像の表示倍率を強制的に指定(y方向)

## サンプル

    #include "mod_layerbutton.hsp"

    celload dir_tv + "btn_hard.png", -1;celid_auto
    cel_id = stat
    celdiv cel_id, 80, 24
    log = ""
    pos 50, 50
    repeat 3
    	pos ,ginfo_cy+10
    	bt_opt += 100
    	layerbutton 180,60, bt_opt, 0, 30,20,5, 15,10,2 {
    		if lparam != objlayer_cmddraw : return  ; _cmddraw以外無視
    		font msgothic,16,1 : color 240,240,255 : objcolor 0,0,100  ; 文字色 / 縁取り色
    		laybtn_ezcel cel_id, 0, "ezcelボタン "+objlayer_option,4, 0,-1, 0,3  ; ボタン描画
    		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_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_ezbox | layerbuttonの角丸長方形塗りつぶしによる簡単描画 | (mod_layerbutton)
laybtn_ezfrm | layerbuttonの角丸長方形枠線による簡単描画 | (mod_layerbutton)
laybtn_boxfb | laybtn_ezbox,laybtn_ezfrmの角丸長方形をサイズ指定で塗りつぶしまたはボーダー描画 | (mod_layerbutton)
laybtn_hitarea | layerbuttonオブジェクトのタッチ範囲を変更して設定する | (mod_layerbutton)
layerbtn_stat | layerbuttonのボタン状態が代入される | (mod_layerbutton)
layerbtn_cnt | layerbuttonのボタン状態が変更されてからの経過フレーム数 | (mod_layerbutton)

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

04 sample_minimal-ezcel.hsp | #include "hsp3dish.as" #include "mod_layerbutton.hsp" c..
07 sample_vpad-jujikey.hsp | #include "hsp3dish.as" #include "mod_layerbutton.hsp" #..
09 sample_vpad-analog.hsp | #include "hsp3dish.as" #include "mod_layerbutton.hsp" #..
10 sample_shooting.hsp | title "バーチャルパッド用サンプル シューティング" randomize HSP3Dish.js用データ..
12 sample_keybdmod.hsp | title "mod_layerbutton-keybd サンプル" HSP3Dish.js用データフォルダ設..

## 情報

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