FlashLiteゲームをつくる(3)もぐらたたき
※著作権について
サンプルに使用しているグラフィックは流用禁止。
スクリプトは非営利流用可。営利目的使用はアフィリエイトを含めて要相談。
1.もぐらたたきをつくる
基本的なアクションゲームの見本として、「もぐらたたき」ゲームを作成する。
ゲーム中の基本的な流れは
・乱数で飛び出るモグラを決定。
・MCを切り替えて、飛び出る。
・押されたボタンが乱数と同じならヒットフレームに移動。
・時間が来たら、モグラを戻す。
・繰り返す。
という感じ。
構成としては
(1)タイトル
(2)ゲーム中
(3)ゲーム終わり
の3パートで構成される。
3.ゲーム中
ゲーム中は、乱数で飛び出るモグラを決定して、飛び出る表示を行う。
一定時間はキーを受け付け、その後、モグラを戻す処理。
また、一定時間あけて、先頭にもどり、モグラをだす。
loopctの回数ループしたら、ゲーム終了となる。
rr=random(9)+1; //trace("cnt="add loopct add "/"add rr); tmc="m" add rr; tellTarget(tmc){ gotoAndStop(2); }
飛び出すモグラを乱数で決め、そのムービークリップに対して、飛び出す処理を行う。
モグラのムービークリップがm1〜m9まで9個ある。
モグラのフレームによって
(フレーム1)引っ込んだところ
(フレーム2)出たところ
(フレーム3)打たれたところ(今回使わない)
(フレーム4)打たれたところ+ヒットマーク
以上の4つのパターンがフレームに配置してある。
戻す処理はこちら
tellTarget(tmc){ gotoAndStop(1); }
ゲーム中、キー入力が可能な部分ではボタンを配置し、キー入力を監視する。
on (keyPress "1") { if (rr == 1) { kk = 1; call("hitproc"); } } on (keyPress "2") { if (rr == 2) { kk = 2; call("hitproc"); } } 【途中3〜8まで略】 on (keyPress "9") { if (rr == 9) { kk = 9; call("hitproc"); } }
ループの頭で決めた乱数とキーが同じなら、”モグラを叩けた”という処理を行う。
fla編集中の最後のフレームに、call用のキーフレームを用意し、そこにスクリプトのみを書き込むと、そのフレームのスクリプトをサブルーチンの用に呼ぶことが出来る。
score+=10; tellTarget("m" add kk){ gotoAndPlay(4); } gotoAndPlay("hit");
”モグラを叩けた”時には、ヒットマーク付きのモグラを表示し、メインのタイムラインは”hit”に移動。
loopct--; if (loopct>0) { gotoAndPlay("main"); }
フレームで時間待ちをしてから、ループの最後にカウンタを減らして、次のループにはいる。
3.ゲーム終わり
得点を表示して、ゲーム終了。
記録をサーバーに送ったり、いろいろ工夫の余地はあるが、今回はサンプルなので、このへんで終わり。
0キーでトップへ戻るボタンを配置。
4.重ね合わせ
このゲームの一つのポイントはモグラが穴から出てくるアニメ。
完全に穴の下にモグラを置くと、飛び出た時に頭が穴からでないなどの不都合がある。
穴の手前はモグラより前、穴の後ろ側はモグラより後ろの表示順にしている。
穴の絵
モグラ
穴の手前の絵
という順番。
表示の順番はレイヤーの順番で決まる。
5.まとめ
FlashLiteでアクションゲームを作るときには、
・複数のボタンを押さない
・過度の連射をさせない
などを考慮したゲームのデザイン(企画)が必要。
また、ムービークリップの構造とスクリプトは連携しているので、今回のヒットマークのようなパターンを覚えていくと便利。
動作サンプルをこちら。
FlashLiteサイト[usuaji Games]
■FlashLiteのサンプル mogura1.swf
http://hspcenter.com/i/
※ケータイ用のサイト。PCで見ると10キーの並びが違うので、苦労する。
サンプルのflaファイルのダウンロードはこちら
http://hspcenter.com/i/fla/mogura1arc.zip