- ベストアンサー
Flashでの連打ゲームの作成方法についてお願いします。
質問させて頂きます。 Flash初心者なのですが、 ゲームを製作しなければならなくなりました。 連打をすると動物の尻尾の部分だけがどこまでも長く伸びて行く様な ゲームを製作したいのですがどの様に作ったらいいのか 検討がつきません。 大変恐縮ですが、グッドアイディアのある方、作ったことのある方が いらっしゃいましたらご教授頂ければと思います。 使用しているのはFlash MX Professional 2004です。 加えまして、そのゲームにランキング等もつける事が可能かどうかも 教えて頂ければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
すごく笑える…。 おもわず吹きだしてしまうご質問ですね。 > 連打をすると動物の尻尾の部分だけが > どこまでも長く伸びて行く様なゲームを製作したい 面白いですね。 > グッドアイディアのある方、作ったことのある方が > いらっしゃいましたら おそらくそんな奇妙なゲームは, 作られたことがある人はいないと思いますよ。 そんな発想をすること自体が,面白くてグッドアイデアだと思います。 ================== ムービークリップ内に, 動物のしっぽがのびるアニメーションを,モーショントゥイーン か シェイプトゥイーン か パラパラマンガ で作って, その動物をクリックするたびに, ムービークリップ内のタイムラインが1フレームずつ進むようにしておけば良いのではないでしょうか。 ムービークリップ内のタイムラインを簡単に書くと↓。 □ レイヤー 筆・・|○ []|○| ←スクリプト □ レイヤー 筆・・|●//////////////[]| ←動物 □ レイヤー 筆・・|●------------>|●| ←しっぽ → のびる → ムービークリップ内のフレーム1 には, ----------------- this.stop(); ----------------- と書いて,ムービークリップ内の自動再生が行われないようにしておいて, しっぽがのびきった最終フレームの空白キーフレームには, しっぽがのびきったときに起こる何かのアクションを書けば良いですね。 何かのアクションとは,例えば(例えばですよ), ----------------- this._visible = false; ----------------- と書いておくと, 最終フレーム到達で,その動物が消えます。 そして, 動物のムービークリップのタイムラインではなく, 動物のムービークリップ自体には, --------------------- on (release) { this.nextFrame(); } --------------------- と書いておきます。 これで,動物をクリックするたびに, 1コマずつムービークリップ内のタイムラインが先に進みます。 また,例えば(例えばですよ), 上で作成したしっぽがのびるアニメーションの続きに, フレームを付けたして, 動物が爆発するアニメーションを作って, しっぽがのびきったフレームに, (つまり上で this._visible = false; を書いたフレームに,) ------------------- // このムービークリップを再生開始 this.play(); // ボタン機能を無効にする this.enabled = false; ------------------- と書いておけば, しっぽがのびきったあと,自動的に動物が爆発します。 爆発アニメ再生開始後に,クリックして, this.nextFrame(); が実行されると, 爆発途中で止まってしまう可能性があるので, enabled = false; でボタン機能を無効化しています。 この辺はもっと良いアイデアを考えてください。 ================== > 加えまして、そのゲームにランキング等も > つける事が可能かどうかも教えて頂ければ幸いです。 何か得点が入るルールを決めて, その得点やハンドルネーム(あらかじめ入力してもらう)などのデータを, CGI や PHP などサーバサイドプログラムに送信して, サーバサイドプログラムでランキングを集計すればできるでしょう。 例えば, メインムービー(_root)のタイムラインのフレーム1で, ------------------- // 変数得点(tokuten)の初期化 var tokuten = 0; ------------------- と書いておきます。 そして, 動物が1つ爆発するごとに 10 点が加算されるようにしておくなどです。 具体的には, しっぽがのびきって,動物が爆発した最後のフレームに, ----------------- _root.tokuten += 10; this._visible = false; ----------------- と書けば, _root の tokuten が 10 加算されると同時に,動物が爆発して消えます。 しっぽがすぐにのびきる動物(つまり弱いキャラ)は 10 点, しっぽがどんどんのびてなかなかのびきらない動物(つまり強いキャラ)は 50 点など, 動物によって点数を変えても良いですね。 その tokuten の合計値と,ハンドルネームなどの userName みたいな変数の値を, CGI や PHP などに送信すれば良いということになります。 CGI や PHP で集計し,データをサーバ上に残しておけば, いつ,だれがゲームに挑戦しても,その得点が集計され記録が残りますからランキングが可能になります。 Flash はクライアントサイドで起動されたときに, グライアンとサイドのPCに表示されるだけのものですから, Flash だけではデータの保存ができないのでランキング集計もできません。 CGI や PHP に変数やその値を渡すのには, LoadVars クラスの send メソッドや sendAndLoad メソッド, または, getURL("PHPのURL", "_self", "POST"); あたりでできます。 一応, 「ActionScript+CGIプログラミング」という書籍が(かつて)出ていて, (もうほとんどどこも売っていません) そのサンプルが今でもなぜかDLできます。 「ActionScript+CGIプログラミング」 http://books-support.softbank.co.jp/isbn/2146/ ダウンロード>> サンプル表示>> ~ダウンロードページより引用~ > サンプルデータの著作権は、著作者が所有しています。 > これらのデータは本書の購入者に限り、 > 無料でご利用いただけますが、 > 著作者及び出版社の文書による許諾を得ずに > いかなる媒体にもデータの再転載や > 二次使用は禁止いたします。 「本書の購入者に限り、無料でご利用いただけますが、」 と書かれましても,今やほとんど買えない本です。 ほとんど手に入らない本を購入しなければならないのは困ったものですが, 一応ここでは残りわずかながらあるみたいです↓。 http://shop.sbcr.jp/bm_detail.asp?sku=4797321466 他のサイトや書店はどこもだいたい品切れです。 一応,サンプルということで URL を書かせていただきました。 CGI や PHP などサーバサイドプログラム に関しては私はよくわかりませんので, これ以上の回答は,すみませんが控えさせていただきます。 また,他にも CGI などの良いサンプルがあるかもしれません。 --- P.S. -------------- ちなみに私は現在, 「砂浜や海底のゴミを拾い集めるFlashゲーム」 を作成中です。 何でも,「緑の日」にちなんだイベント関連のものだとか...。 Flash プログラミング自体は私がしているのですが, 「砂浜や海底のゴミを拾い集める」というコンセプトは, クライアントが考えたもので,私が考えたものではありません。 世の中には変なゲームを作りたい,または,作って欲しいという要望があるものなんですね(笑)。
お礼
ご回答ありがとうございました。 早速、頂いたご回答を元に作成してみようと思います。 ゴミ集めのFlashもとても面白い案ですね! 作成頑張ってください。