まだ起きてたりするのは問題じゃありません。毎度ながら『涼宮ハルヒの激闘』をやってました。
ところで、
話題書き>小説・文学>森博嗣(?)
記事数が(-1)になってるように見えるのは私だけか?!
そういやボーカロイドが1人増えますね。明日だっけ?
いや、不意に思い出しただけです。
Config用の画像をある程度出力したので、さっそく動作確認しました。
設定画面は使う画像が多いのでスプライト登録、ボタン定義、ボタン判定だけで何行にもなります。さらに今回は音量調整のツマミまであるわけで、以前のに比べて処理量も大幅アップ!
で、そのツマミの話。
簡単にやるなら音量を5段階くらいに分けて、今のツマミの位置より左なら1下げて右なら1上げる程度で十分ですが、NScripterはbgmvol、sevolで0〜100まで調整できるので無駄にしないようツマミは滑らかに動くようにしました。
と言ってしまえば簡単。ところが非常にめんどくさい。要は左クリックで押してる間はスライドさせて、離すと動かないようにすればいいわけですが……
*config_loop
btndef""
btndown 1
exbtn_d "〜"
exbtn 1,1,""
:
:
*config_btnloop
btnwait2 %0
if %0=1 goto *bgmvol
if %0=2 lrclick:goto 〜
:
:
goto *config_btnloop
*bgmvol
trap *bgmvol_end
for %0=0 to 10
*bgmvol_return
wait 10
getmousepos %1,%2
if %1>200 mov %1,200
if %1<100 mov %1,100
mov %2,%1-100
bgmvol %2
if %0=100 break
mov %0,5
next
mov %1000,%2 ;%1000は通常時のBGM音量
goto *config_loop
*bgmvol_end
mov %0,100
goto *bgmvol_return
てな感じになるわけですな、うん。
まず大抵のクリック待ちはをクリックを離した時の位置で判定となります。ということは、まずボタン判定をクリックで押した時にする必要があるわけです。この命令がbtndown。
trapは左クリックをした時に指定ラベルへ飛ばす命令。これはボタンじゃないので普通のクリック待ち。つまり離した瞬間に作動する。
ここで一番重要な命令はwait 10。たかが0.01秒待てという命令だが、これやらないと処理が速すぎる。これはそんな1秒に何万回もさせる処理じゃありません(笑)
他に質問とかがあったらえいじゅんさんに聞いてください。昨日Dr.マリオもどきで遊んでて気付いたら23時だった私に聞くよりも、彼に聞いた方がマニアックに答えてくれるはずです。
話題:ゲーム製作