3.3 クリックやスキップの監視

今回の目的
 クリックのタイミングや位置を監視する方法や、既読スキップ設定について解説します。

 


クリックでジャンプ
 あらかじめクリックを監視しておけば、クリックした時点で指定したラベルへジャンプさせることができます。 プレイヤーに任意にデモシーンを飛ばさせたいとき等に有効です。

*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が作られます。

 ※既読判定は、繰り返し処理のようにスクリプト上の同じ行を
  グルグル回る場合には適用されません。  

 


まとめ
 快適に遊んでもらうために、クリック監視や既読スキップは馬鹿に出来ません。
 プレイヤーにとって煩わしい作業は出来る限り取り除いてやることも、ゲームを純粋に楽しんでもらうための秘訣です。

 次節では、変数の応用的使い方を説明します。

 


前へ    TOPへ戻る    次へ