AirNovel - スライドバー †
適当に作ってみました。上手く動作しなかったらごめんなさい。 公式サンプルのを参考にした方がいいかもしれません。 スライドバー用のスクリプト †
[add_slidebar]タグ †/** * スライドバーを追加する * * @note [add_slidebar] * layer : [必須] スライドバーを判定するレイヤー * align : [必須] どちらの方向へスライドバーがあるか[left : 右から左, right : 左から右, top : 下から上, bottom : 上から下] * left : [alignがleft, rightの場合は必須] スライドバーの領域左端 * right : [alignがleft, rightの場合は必須] スライドバーの領域右端 * top : [alignがtop, bototmの場合は必須] スライドバーの領域上端 * bottom: [alignがtop, bototmの場合は必須] スライドバーの領域下端 * default : [defaultかdefault_pどちらか必須]デフォルトの座標 * default_p : [defaultかdefault_pどちらか必須]デフォルトのパーセンテージ[0~100] * page : レイヤーのどちらのページを使うか[fore, back] */ [del_slidebar]タグ †/** * スライドバーを削除する * * @note [del_slidebar] * layer : [必須] スライドバーを判定するレイヤー */ [slidebar_pos]タグ †/** * スライドバーの座標を取得する * * @note [slidebar_pos] * layer : [必須] スライドバーを判定するレイヤー * name : [必須] 保存変数名 */ [slidebar_percent]タグ †/** * スライドバーのパーセンテージを取得する * * @note [slidebar_percent] * layer : [必須] スライドバーを判定するレイヤー * name : [必須] 保存変数名 */ 使用例 †; プラグインのロード [loadplugin fn="SlidebarTag" join=true] ; スライドバーのツマミ座標保存 [let name="tmp:slidebar_pos1" text="0"] ; スライドバー1つにつき、1つのベースレイヤーを作る [add_lay layer="option_slidebar_base" class="txt"] ; スライドバーのツマミレイヤー [add_lay layer="option_slidebar_button" class="txt"] ; [plugin] スライドバーの設定 [add_slidebar layer="option_slidebar_base" align="right" page=fore left=850 right=1150 default_p=100] [lay layer="option_slidebar_base" visible=true b_alpha=0] [lay layer="option_slidebar_button" page=fore visible=true b_alpha=0] [lay layer="option_slidebar_button" page=back visible=true b_alpha=0] ; ベース画像を設定(この表示エリアで当たり判定が取られる) [button layer="option_slidebar_base" page=fore pic="slidebar_base" left=850 middle=300 enabled=false] [call label=*SlidebarUpdate] ; ループを回す *OptionLoop [call label=*SlidebarUpdate] [call label=*OptionLoop] [s] ;//-------------------------------------------------------------- ;/// スライドバーのツマミ位置更新 ;//-------------------------------------------------------------- *SlidebarButtonUpdate ; backページに設定後、差し替え [let name="tmp:percent" text="0"] [slidebar_pos layer="option_slidebar_base" name="tmp:slidebar_pos1"] [slidebar_percent layer="option_slidebar_base" name="tmp:percent"] ; ここで設定を行う ; [let name="hogehoge" text="&tmp:percent"] [button layer="option_slidebar_button" page=back join=true pic="slidebar_button" center="&tmp:slidebar_pos1" middle="300" enabled=false] [trans layer="option_slidebar_button"] [wt] [clear_lay layer="option_slidebar_button" page=back] [return] ;//-------------------------------------------------------------- ;/// スライドバーの更新 ;//-------------------------------------------------------------- *SlidebarUpdate [let name="tmp:pos1" text="0"] ; ボタン位置取得 [slidebar_pos layer="option_slidebar_base" name="tmp:pos1"] ; 座標値に変更が入った時のみ更新する(そうしないと、スライドバー以外が正常に動かない) [let name="tmp:update" text="&tmp:pos1 != tmp:slidebar_pos1"] [call label=*SlidebarButtonUpdate cond="tmp:update == true"] ; 空ループになるので、更新がない場合はwaitを挟む [wait time=16 cond="tmp:update == false"] [return] 使用例(複数) †; プラグインのロード [loadplugin fn="SlidebarTag" join=true] ; スライドバーのツマミ座標保存 [let name="tmp:slidebar_pos1" text="0"] [let name="tmp:slidebar_pos2" text="0"] ; スライドバー1つにつき、1つのベースレイヤーを作る [add_lay layer="option_slidebar_base" class="txt"] [add_lay layer="option_slidebar_base2" class="txt"] ; スライドバーのツマミレイヤー [add_lay layer="option_slidebar_button" class="txt"] ; [plugin] スライドバーの設定 [add_slidebar layer="option_slidebar_base" align="right" page=fore left=850 right=1150 default_p=100] [add_slidebar layer="option_slidebar_base2" align="right" page=fore left=850 right=1150 default_p=100] [lay layer="option_slidebar_base" visible=true b_alpha=0] [lay layer="option_slidebar_base2" visible=true b_alpha=0] [lay layer="option_slidebar_button" page=fore visible=true b_alpha=0] [lay layer="option_slidebar_button" page=back visible=true b_alpha=0] ; ベース画像を設定(この表示エリアで当たり判定が取られる) [button layer="option_slidebar_base" page=fore pic="slidebar_base" left=850 middle=300 enabled=false] [button layer="option_slidebar_base2" page=fore pic="slidebar_base" left=850 middle=500 enabled=false] [call label=*SlidebarUpdate] ; ループを回す *OptionLoop [call label=*SlidebarUpdate] [call label=*OptionLoop] [s] ;//-------------------------------------------------------------- ;/// スライドバーのツマミ位置更新 ;//-------------------------------------------------------------- *SlidebarButtonUpdate ; backページに設定後、差し替え [let name="tmp:percent" text="0"] [slidebar_pos layer="option_slidebar_base" name="tmp:slidebar_pos1"] [slidebar_percent layer="option_slidebar_base" name="tmp:percent"] ; ここで設定を行う ; [let name="hogehoge" text="&tmp:percent"] [button layer="option_slidebar_button" page=back join=true pic="slidebar_button" center="&tmp:slidebar_pos1" middle="300" enabled=false] [slidebar_pos layer="option_slidebar_base2" name="tmp:slidebar_pos2"] [slidebar_percent layer="option_slidebar_base2" name="tmp:percent"] ; ここで設定を行う ; [let name="hogehoge" text="&tmp:percent"] [button layer="option_slidebar_button" page=back join=true pic="slidebar_button" center="&tmp:slidebar_pos2" middle="500" enabled=false] [trans layer="option_slidebar_button"] [wt] [clear_lay layer="option_slidebar_button" page=back] [return] ;//-------------------------------------------------------------- ;/// スライドバーの更新 ;//-------------------------------------------------------------- *SlidebarUpdate [let name="tmp:pos1" text="0"] [let name="tmp:pos2" text="0"] ; ボタン位置取得 [slidebar_pos layer="option_slidebar_base" name="tmp:pos1"] [slidebar_pos layer="option_slidebar_base2" name="tmp:pos2"] ; 座標値に変更が入った時のみ更新する(そうしないと、スライドバー以外が正常に動かない) [let name="tmp:update" text="&tmp:pos1 != tmp:slidebar_pos1 || tmp:pos2 != tmp:slidebar_pos2"] [call label=*SlidebarButtonUpdate cond="tmp:update == true"] ; 空ループになるので、更新がない場合はwaitを挟む [wait time=16 cond="tmp:update == false"] [return] 使用例(レイヤー一杯使って動作を軽量化) †
やってること †
何か †
使用した画像データサンプル †
|