layerbuttonの角丸長方形による簡単描画
laybtn_ezbox id,no,"strings",zx1,zy1,zx2,zy2, 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_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_hitarea | layerbuttonオブジェクトのタッチ範囲を変更して設定する | (mod_layerbutton) |
| layerbtn_stat | layerbuttonのボタン状態が代入される | (mod_layerbutton) |
| layerbtn_cnt | layerbuttonのボタン状態が変更されてからの経過フレーム数 | (mod_layerbutton) |
| 01 demo.hsp | title "layerbutton demo" log = "" HSP3Dish.js用フォルダ設定 in.. |
| 02 demo-stateflow.hsp | title "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.hsp | title "mod_layerbutton-keybd サンプル" HSP3Dish.js用データフォルダ設.. |
| プラグイン / モジュール | mod_layerbutton |
| バージョン | 1.1 |
| 作成日 | 2025/9/24 |
| 著作者 | MIZUSHIKI |
| URL | https://suwa.pupu.jp/HSP/index.html |
| 備考 | layerobj命令を利用して、ちょっとリッチなアニメーション付きボタンを比較的簡単に作成することができます。 */ ///////////////////////////////////////////////////////////////////////////// #if 0 // hs ファイル ////////////////////////////////////////////////////////////// |
| タイプ | 拡張命令 |
| グループ | 画面制御命令 |
| 対応環境 | ・Windows 版 HSP |