クリックのタイミングや位置を監視する方法や、既読スキップ設定について解説します。
| ||
あらかじめクリックを監視しておけば、クリックした時点で指定したラベルへジャンプさせることができます。
プレイヤーに任意にデモシーンを飛ばさせたいとき等に有効です。
| ||
*define clickstr "」。!?",2 effect 6,6,100 game *start 今からスプライトで簡単なデモを流します。 デモはクリックで飛ばすことが出来ます。 trap *jump *repeat lsp 0,":a;image\yuki.jpg",%0,100 print 6 add %0,10 if %0!=450 goto *repeat trap off デモが終わりました。 end *jump csp 0 print 6 デモを飛ばしました。 end | ||
何も押さなければデモは進み、クリックするとデモが飛ばされました。 「trap」を記述すると、それ以降は常にクリックが監視されます。 もしクリックすれば自動的に指定したラベルへジャンプします。 例では、スプライトが繰り返し表示されている時、常にクリック監視されています。 クリック監視を止めるには、クリックしてジャンプするか「trap off」を使います。 「trap off」と書けば、それ以降はクリック監視されません。 ちなみに「trap」は左クリックのみの監視になります。 「trap」を「lr_trap」に変えれば左右クリックが監視されます。 | ||
最後にクリックしたゲーム画面上の座標を記録します。
| ||
*define game *start 画面の好きなところをクリックしてください。 *repeat clickpos %0,%1 クリックした座標は(%0,%1)です。 goto *repeat | ||
(288,146)をクリックするとこのように。 「clickpos」の後に数字変数を二つ用意してやります。 するとクリックしたX座標・Y座標がそれぞれの数字変数に代入されます。 | ||
NScripterのメニューバーには「選択肢まで進む」というスキップ機能がついています。
スキップを使うと画面をクリックするまで、ひたすらスキップを続けます。 場合によってはプレイヤーに見せたいデモシーン等もスキップされてしまいます。 それを回避するために任意の場所でスキップを止める命令があります。 | ||
*define clickstr "」。!?",2 game *start mov %0,1 変数にひたすら数を加算していきます。 *repeat if %0=500 skipoff %0回目です。 add %0,1 goto *repeat | ||
スキップしても500回目でピタッと止まります。 「skipoff」が認識された時点でスキップモードが止まります。 放っておいても無駄に文章が流れることはありません。 | ||
意外と需要のあるのが既読スキップです。
既読スキップを設定すれば、既に呼んだことのある文章のみをスキップし、 まだ読んだことの無い文章でストップしてくれます。 既読スキップを設定するには、 定義ブロックに「kidokuskip」、実行ブロック「kidokumode 1」と入れればOK。 既読スキップから通常のスキップに戻したい時は「kidokumodo 0」とします。 既読スキップに設定すると、フォルダ内にkidoku.datが作られます。 ※既読判定は、繰り返し処理のようにスクリプト上の同じ行を グルグル回る場合には適用されません。 | ||
快適に遊んでもらうために、クリック監視や既読スキップは馬鹿に出来ません。
プレイヤーにとって煩わしい作業は出来る限り取り除いてやることも、ゲームを純粋に楽しんでもらうための秘訣です。 次節では、変数の応用的使い方を説明します。 | ||