効果音つき選択肢とexbtn_dの存在意義
 ネタ元はサポートBBS。
 「カーソルを合わせると効果音がなる選択肢を自作したい」と思った場合、それを実現するのに使う命令といえばexbtn命令ですよね。
 で、問題はexbtn_d。マニュアルとかあるいは講座系サイトを見ていると、exbtnとexbtn_dは必ずセットで使わなければならないように書かれていますが、単に効果音が鳴るだけのボタンを作成するのであればexbtn_d命令は使わなくてもいいのでは?
 そう思ったので試してみました。以下、サンプルスクリプト。


*define
game

*start
lsp 1,":s#FFFFFF#FF0000あ",0,0
lsp 2,":s#FFFFFF#FF0000い",0,30
exbtn 1,1,"S1,(01.wav)"
exbtn 2,2,"S1,(01.wav)"

*loop
btnwait %0
if %0 > 0 dwave 1,"02.wav":wait 2000:end
goto *loop


 スクリプト中で効果音を2つ(01.wavと02.wav)使用しているので、適当なファイルを用意してから実行してみてください。
 どうでしょう。単に効果音が鳴るボタン、というのであればこんな感じで充分だと思うのですが。exbtnに指定したスプライトは通常のボタンと同様の動作をしてくれますし、文字列スプライトから普通の画像に変えても正常に動作しますし。
 また、試しに
exbtn_d "S1,(01.wav)"

 という命令をスクリプトに追加してみたところ、
・btnwait時に鳴る
・ボタンからカーソルが外れた時に鳴る
・ボタン外の領域をクリックした時に鳴る
 という動作になりました。このことから、exbtn_dは「ウィンドウ一杯に広がるボタン番号0のボタンに一定の動作を割り当てる命令」に例えられると思います。
 もしボタン以外のスプライトを操作する必要があるのならばexbtn_dが必要になりますが、単に効果音を鳴らすだけならばexbtnのみで充分だ、というのが自分の出した結論です。

 余談ですが、自分は効果音ボタンの時にexbtn_dを使う、という発想がありませんでした。本体付属の新マニュアルにあるexbtnによる効果音の鳴らし方を読んで「ああ、こうやったら音が鳴るんだ」と知り、単純にspbtn→exbtnの置き換えをしただけだったので。
 調べてみると、自分のような書き方をしている人は少ないみたいで。これは昔からexbtnを使っている名残なのか、それとも最近になってexbtn周りの処理が変わったのでしょうか。
[PR]
by lyricist_m | 2008-05-06 20:59 | NScripter
<< マウスジェスチャー(2) 感度の導入 Unicode(Big End... >>