前回はこちら
●触られたら感じちゃう!
えーと。今、アイテムをゲットしてどうこうするタイプの脱出ゲームを作るために、ゲットしたアイテムを管理できる変数と、条件式に関するイロハをやった所だな。あと必要になってくるのは、アイテムをゲットした時にそのアイテムを自分の持ち物リストに加えるような動きか。
色々とやり方はあると思うんだが、一番頭を使わなくて済む方法でやる。その代わり、体を使うぞ。体を使うというのは、ちょっと手間をかけるって事だ。頭を使わないなら体を使う。それが嫌なら頭を使う。楽な道などない、世の中の常識だぜ。
複雑なスクリプトを使う代わりに、普通にアニメーションさせることでアイテムの移動を実現する。アイテムリストを画面の右側に配置することを想定する。
ややこしいことを考える前に、まずはアイテムをクリックしたらそのアイテムリストに収める、そんな機能を作ろう。スプライトを使うぞ。
スプライトの中身は、最初のフレームに初期位置に置かれたアイテム、次のフレームにアイテムリストに収まっている時のアイテム。なんのことはない、座標だけ変えてやればいい。よく考えたらトゥーンモーションすら要らないな。まあ、お好みでトゥイーンつかうといいよ。
そして、スプライトにアクションレイヤを付け加え、1フレーム目とアイテムリストに収まってるフレームにstop();を書き込む。これだけで実質準備完了だな。
では、それをFLASHに配置してみようか。普通に、スプライトを画面上に配置だ。ここまでは問題ないな?問題がある方が問題だ。練習が足りん。
さて。いよいよ、アイテムをクリックしたらアニメーションしてアイテムリストに収まるようにする。とりあえず、スプライトの1フレーム目のアクションにこれを書き込め。stop();の上でも下でもどっちでもいい。
onClipEvent(load){this.onPress=function(){play();};}
よりシンプルにするために、ちょっと一歩か二歩進んだことをしている。何をしているのかは今は考えるな。考えずに、ひたすら前にだけ進むんだ。スペースもったいないから1行に纏めたが、よい子は真似しないように。丸コピペする時は、行頭の全角スペースに注意。最悪プログラムが落ちるぞ。
これは、スプライトがクリックされたらスプライトを再生するスクリプトだ。スプライトの中にこれを仕込んでプレビューすると、アイテムをクリックするとアニメーションが始まるFLASHができあがっている。これを組み合わせていく。
本来ならonClipEventを使うのが初心者向けなんだが、機能に融通性のないonClipEventって、使いにくいのよね。だからどうしてもこっちに流れる。これも時代の流れだよな。
ただ……これ、やると分かると思うんだけど、重大な問題点があるよな。そう、アイテムリストに収まったスプライトをクリックすると、元の場所に戻っちゃうよね。スプライトの構造にもよるけど。
サンプルでは、ループするアニメーションのスプライトを使っているのであまり問題なく動いている。でも、いつもループさせたいとは限らん。……ちょっと頭を捻れば今までにやったことの応用でどうにか切り抜けられるが、切り抜けちゃ駄目だ。考えるな。
次回は、ループ暴走を防ぐために条件式を活用する話をするぞ。

5