Flashゲーム作成講座

初心者からクリエイター志望まで Flashゲームの作り方 入門

ゲームの作り方を初心者にも分かりやすく説明します。ゲームクリエイターを目指す方にも役立つ情報を。

MouseEvent.CLICK と MouseEvent.MOUSE_DOWN の使い所

マウスの左ボタンが押されたか調べる方法には、次の4つがあります。

イベント定数 内容
MouseEvent.CLICK 左ボタンをクリックした
MouseEvent.DOUBLE_CLICK 左ボタンをダブルクリックした
MouseEvent.MOUSE_DOWN 左ボタンを押した
MouseEvent.MOUSE_UP 左ボタンを離した

これらの詳細は
[ マウスのボタンが押されたか調べる方法 (左ボタン) ]
を参照して下さい。

この4つの中から、クリックを調べるイベントMouseEvent.CLICK
ボタンが押されたか調べるイベントMouseEvent.MOUSE_DOWNについて
どのように使い分けたらいいか説明します。

 

ゲームの品質に関わること

ゲームをプレイした時に
「なにかもっさりしているな」
「反応が悪い」
などと感じたことはありませんか?

原因は色々と考えられますが、入力システムの作り方に問題があるために
そう感じてしまうことがあるのです。

プレイヤーがボタンを押してから、ゲーム内で処理されるまでの時間(タイムラグ)が長いと
「反応が悪い」と評価されます。
アクション性の高いゲームでは特にありがちです。

ゲームの品質を上げるためには、入力におけるタイムラグについても気を配るように
しましょう。

 

クリックと押すの違い

パソコンを操作する時に使われる言葉は
「マウスをクリック」または「マウスのボタンをクリック」
などが一般的です。
「マウスのボタンを押す」と表現されることは、ほとんどありません。

ゲームを作る時「マウスをクリックする」ということを当たり前と思い
入力にMouseEvent.CLICKイベントだけを使ってしまうと
ゲーム性に合わないパターンが発生します。

MouseEvent.CLICK イベントの条件の
マウスのボタンをクリックした」とは
ボタンを押してから離すまでの動作」を指し
ボタンを離したタイミングでイベントが発生します。

MouseEvent.MOUSE_DOWN イベントの条件の
マウスのボタンを押した」とは
ボタンを押すまでの動作」を指し
ボタンを押したタイミングでイベントが発生します。

2つのイベントの違いを、次のサンプルで体感してみて下さい。

赤い印と青い印が重なるタイミングで上の段をクリックすると
ほぼ思っている場所で青い印が停止すると思います。
下の段をクリックした場合は、青い印が少し進んで停止すると思います。

ボタンを押した時に発生するイベントと
押して離した時に発生するイベントでは
細かい所で操作する感覚が違ってくるのが分かりますね。

よって、ゲームで弾を発射したりするような入力操作では
MouseEvent.MOUSE_DOWNイベントを使うようにしましょう。

参考までに、サンプルのプログラムを載せておきます。

flash as3 ゲームに適したマウスボタンの使い方

 

決定ボタンは MouseEvent.CLICK を使おう

ゲームでマウスを使う場面は、キャラを移動させたり、弾を発射したり
アイテムを拾ったりなどのゲームプレイに関わる操作があります。
また、OKボタン、キャンセルボタン、ステージセレクトなどの
何かを決定する操作があると思います。

どちらの場合でもMouseEvent.MOUSE_DOWNイベントで対応することは可能ですが
何かを決定する操作に関してはMouseEvent.CLICKを使う方が親切です。

次のサンプルを試してみて下さい。

ちょっと分かりづらいかもしれませんが、左のボタンを押すとすぐに青い板が表示されます。
右のボタンを押すと、ボタンを押した絵が表示されてから青い板が表示されます。

はっきり違いが出てくるのは、ゆっくりクリックした時です。
それぞれのボタンをゆっくりとクリックしてみて下さい。
右のボタンでは、ボタンを押した絵がしっかりと確認できます。

実際にゲームを作ってみると理解できると思いますが、
ボタンを押した瞬間に画面が切り替わったりすると、せわしなく感じたり
プレイヤーによっては、操作している状況がうまく認識できなくなることがあります

何かを決定させるシーンではMouseEvent.CLICKを使って
クリックしてもらう方がいい場面もあると覚えておいて下さい。

 

もう一つMouseEvent.CLICKをすすめる理由があります。
先ほどのサンプルで
右のボタンを押した状態で、マウスカーソルをボタンの外に移動してみて下さい。
青い板が表示されません。
そうです、押した後でもキャンセルすることが可能なのです

例えばアイテム合成など1度操作したらやり直せないシーンなどで
ボタンを押した瞬間に
「あっ、間違えた・・・」
と思うことがあります。

MouseEvent.CLICKを使っていれば、ボタンを押した直後に気づいたなら
キャンセルすることができるのです。
知っているプレイヤーにしか意味の無い機能ですが、あると地味に喜ばれます。

 

[ マウスやキーボードの操作について ] に戻る