カスタムメニューで設定画面を作りたい。(質問掲示板)
投稿:
fragile
投稿:2012/10/01 20:35:01(最新:2012/10/06 01:47:06)
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座標が変わっているのでとりあえずこの形にしてます。
意外と重い処理なので
ループさせて使用する場合
あらかじめ必要な数(設定したい位置の数)だけ
複数の位置で設定したテキストエリアを
用意しておき、
テキストの内容変更で
表示位置を変えているように
見せかけるのが良いかと。