| Step3.キー入力とコントロールの遷移 | |
○キー入力の検出
複数のコントロール間を<JUMP>アクションによって移動できることはわかりました。しかし、相変わらず決まったルートのアニメーションを繰り返しているだけで「インタラクティブな」iアプリとは言えません。
そこで、プレイヤーのキー入力をキッカケとしてアニメーションが変わるような構成にします。
MoPeeではキー入力を検出するために <KEY>コンディションが用意されています。<KEY>コンディションを利用すると、特定のキーが押されているときだけ実行されるステートメントを作ることができるので、プレイヤーの入力によって処理を分岐させることが可能になります。
<KEYコンディションアイコン>
この<KEY>コンディションを利用して、
ループしているアニメーションの途中で、決定キーを押すとアニメーションシーケンスの先頭に戻る
という機能をつけてみましょう。
これまでもステートメントの中の実行条件を表す「コンディション」自体は使っていましたが、「無条件で実行」するための <NULL> コンディションのみでした。今回は「決定キーが押された時だけ実行」するので、そのための設定が必要になります。
まず、キー検出・分岐をするためのステートメントを作りましょう。
紫色になっているコントロールを右クリックして[ステートメントの追加]を実行します。
<ステートメントの追加>
利用中の環境や設定によって、詳細が若干異なる場合もありますが、これまであった<NULL> + <JUMP> のステートメントの下に新たなステートメントが一つできたはずです。
<ステートメントが追加された>
この状態ではステートメントの内容がデフォルト、つまりコンディションもアクションも正しく設定されていないので、目的に合わせて編集しないといけません。
<KEY>コンディションによって、<JUMP>させたいので、まず、コードウィンドウ下部のコンディションアイコンの中の<KEY>アイコンをドラッグし、このステートメントのコンディションにドロップします。
<コンディションのドラッグアンドドロップ>
ステーメントのコンディションの表示が変わり、<KEY>コンディションが利用できるようになりました。
<コンディション設定後>
続いて、このコンディションを右クリックして[プロパティ]を選択します。
<コンディションのプロパティ>
コンディションのプロパティを設定する画面が出てきますので、ここでは
「選択」キーが押されたとき
となるように設定します。
<キーチェックの設定画面>
そして、このステートメントのアクションが、同じコントロールの先頭にジャンプするようにします。
<ジャンプの設定>
なお、このときすべてのフレームでこのステートメントアクティブになるように、スイッチはすべてオンにしておかないといけません。キーの入力はどのタイミングで発生するかわかりません。アクティブになっているフレームが少ないと、キー入力を取りこぼしてしまう可能性があるからです。
さらに、ステートメントは上から順番に実行されるので、<KEY>を含むステートメントは単純ループのための<NULL> + <JUMP> ステートメントよりも上に配置し、先に実行されるようにした方が自然な動作になります。
<ステートメントの入れ替え>
さて、ここまでで、1つのコントロールについての編集が完了しました。同様の作業をもう一つのコントロールにも施しましょう。
<完成版>
プレビューで確認してみましょう。
二つのシーケンスを交互に再生している途中で選択キーを押すと、それぞれのシーケンスの先頭に戻ることがわかります。
このように、<KEY>コンディションによって、キー入力の判定と処理の分岐が可能になりました。
ここまでのところ:03-03.mop 選択キーのチェック