メニューカスタマイズ覚書

書いておかないと絶対忘れる。
ボリューム、スピード関係は全部同じ。

kag.menu.js

メニューを開いた時の表示判定、とりあえずのテキスト変更。

var bgm_vol=parseInt(that.kag.config.defaultBgmVolume);
$(".menu_bgm_vol .num").text(bgm_vol); //メニューを開いた時の表示

1行目は長くて面倒なので、一回変数に突っ込んだだけであまり意味はないです。
parseIntで数値データにしとかないと、+の時にテキスト判定になってしまう。一度-すると問題ないのに。謎。

実行はconfig.ksをそのままcallすりゃいいかなと思ったら、クリックするとゲームが進んじゃうので、jsを追記する事にしました。

layer_menu.find(".menu_bgm_vol .menu_item").click(function(){
 if($(this).hasClass("down")){ //※調整ボタンのclass名。何でもいい
  if(bgm_vol != 0)bgm_vol -= 10;
 }else{
  if(bgm_vol != 100)bgm_vol += 10;
 };
 tyrano.plugin.kag.ftag.startTag("bgmopt_m", {volume:bgm_vol}); //tagを実行
 $(".menu_bgm_vol .num").text(bgm_vol); //メニュー表示を変更
});

kag.audio.js

よくわからんが、タグ実行とnextOrderでゲームが進行してしまうようだけども、
this.kag.ftag.nextOrder()を消すと、ksからの実行時に動かなくなるので、メニュー専用に新タグを書く。
tyrano.plugin.kag.tag.bgmopt を複製適当にリネーム
コメントアウト部分の2行を削除。
※1を※2のように書き換え(tag実行ではなく、直接変数指定する…意味は同じハズ…たぶん…。

tyrano.plugin.kag.tag.bgmopt_m={
 pm:{volume:"100",effect:"true"},
 start:function(pm){
  var map_bgm=this.kag.tmp.map_bgm;
  this.kag.config.defaultBgmVolume=pm.volume;
  //this.kag.ftag.startTag("eval",{"exp":"sf._system_config_bgm_volume = "+pm.volume}); ※1
  this.kag.variable.sf._system_config_bgm_volume = pm.volume; ※2
  var new_volume=parseFloat(parseInt(pm.volume)/100);
  if(pm.effect=="true"&&this.kag.define.FLAG_APRI==false)for(key in map_bgm)map_bgm[key].volume=new_volume;
  //this.kag.ftag.nextOrder()
 }
};

とりあえず、DLファイルに入ってるサンプルゲームではエラー無かった。

タグメモ
BGMボリューム kag.audio.js bgmopt
SEボリューム kag.audio.js seopt
メッセージスピード kag.tag_ext.ja configdelay
オートスピード kag.tag_ext.ja autoconfig

なんでか、ifは{}で記述しないといけないと思い込んでたけど、もしかしたらもっとスッキリ書けるのかな?

Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です