カスタムメニューで設定画面を作りたい。(質問掲示板)
投稿: fragile
投稿:2012/10/01 20:35:01(最新:2012/10/06 01:47:06)
よくゲームのオプションで
みたいな上下で選択、左右で調整する画面がありますよね?
カスタムメニューで実装してみたいのですが、
設定を開くと薄暗い画面になり、それを閉じた上で操作する形になってしまいます。
薄暗い画面のまま操作するにはどうしたらいいでしょうか?
開始スクリプト
ツイート
◇ BGM 3 ◇ SE 2
みたいな上下で選択、左右で調整する画面がありますよね?
カスタムメニューで実装してみたいのですが、
設定を開くと薄暗い画面になり、それを閉じた上で操作する形になってしまいます。
薄暗い画面のまま操作するにはどうしたらいいでしょうか?
開始スクリプト
#名前とか setCustomParamMenuEnable(true) setCustomParamMenuName("設定") #関数の省略 def sv(a,b) setVariable(a,b) end def gv(a) return getVariable(a) end def ca() return createArray() end #設定項目。今回はBGMとSE sv("BGM", 3) ; sv("SE", 3) def onShowCustomParameter() #上から何番目を選択しているか No = 0 #選択中の枠を作る c = createText(322, 80+28*No, 512, 384) setText(c, "◇ ◇") #設定項目の下準備 i=0 ; a=ca() ; b=ca() while i < 2 a[i] = createText(350, 80+ 28*i, 512, 384) b[i] = createText(404, 80+ 28*i, 512, 384) i=i+1 end #実際に文字を入れる setText(a[0], "BGM") ; setText(a[1], "SE") setText(b[0], gv("BGM")) ; setText(b[1], gv("SE")) #ここから操作 startInput() loop=true while loop while hasInput() takeInput() if isKeyDown("ENTER") #Enterで終了 loop=false elsif isKeyDown("UP") #枠を上に if No > 0 No = No - 1 deleteText(c) c = createText(322, 80+28*No, 512, 384) setText(c, "◇ ◇") end elsif isKeyDown("DOWN") #枠を下に if No < 1 No = No + 1 deleteText(c) c = createText(322, 80+28*No, 512, 384) setText(c, "◇ ◇") end elsif isKeyDown("LEFT") #値を小さく(最低1) case No when 0 if gv("BGM") > 1 then sv("BGM", gv("BGM")-1) ; end when 1 if gv("SE") > 1 then sv("SE", gv("SE")-1) ; end end elsif isKeyDown("RIGHT") #値を大きく(最高5) case No when 0 if gv("BGM") < 5 then sv("BGM", gv("BGM")+1) ; end when 1 if gv("SE") < 5 then sv("SE", gv("SE")+1) ; end end end end #画面に反映 setText(b[0], gv("BGM")) ; setText(b[1], gv("SE")) waitTime(30) end endInput() #後処理 deleteTextAll() end
コメントする
コメントするには、ログインする必要があります。
たぶん、無理だと思います
そもそもがデータ項目を表示する為だけの仕様なのだ、と。
同じ理由から以前の コレ も無理かなぁ、と。
一応絵が出せるので、全画面を覆う透過色で薄暗い画面を自分で作っちゃえば、結局なんとなーくそれっぽい事もできるようなできないような?
関係無いけど、位置と大きさが固定なテキストエリアは毎回削除せずに、書いた字を消す場合は " " スペースを書き直せばいいと思うよ
やっぱスクリプト内にそれっぽい記述がない=スクリプトじゃ制御できない
ということですかね...
>>位置と大きさが固定なテキストエリア
y座標が変わっているのでとりあえずこの形にしてます。
意外と重い処理なので
ループさせて使用する場合
あらかじめ必要な数(設定したい位置の数)だけ
複数の位置で設定したテキストエリアを
用意しておき、
テキストの内容変更で
表示位置を変えているように
見せかけるのが良いかと。