• ベストアンサー

的当てゲーム

マウスカーソルが標準マークになって ある絵柄の上でクリックしたらアクションが起きるというのを 作りたいです。 標的はチョコチョコ動き、形状も変わるので ボタン設置が困難です。 他の方法は無いでしょうか? 例:歩いている人物が居て、頭や腕、腹等の特定の場所を打つことができるという内容。 これこれこういう命令を駆使しなさいと 教えてくだされば後は手引書を見て勉強したいと思います。 (きっと、使用例を記載して頂くにも複雑すぎる気がするので) 上記、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

お久しぶりです。 無視していたわけではなく,ずっと考えていたのですよ。 しかし,7万ヒットとはすごいですね。 作られている物も,なにも全てが普通の人と桁違いのように思います。 是非とも,クリック型アドベンチャーゲームをさせてもらいたくてしょうがないです。 前回(消された)ご質問。 マウスカーソルの形にhitTest メソッドを使うところでどうしようか詰まっていたのです。 クリックしたときに,マウスカーソルをすり替えて,すり替えたムービークリップにhitTestを使おうか… など考えているところで停滞しておりました。 でも今回のご質問はマウス座標は面ではなく点なのですね。 それなら簡単にできると思います。 >> 標的はチョコチョコ動き、形状も変わるので >> ボタン設置が困難です。 でもやっぱりボタンで行きましょう。 ボタンの働きをもつムービークリップです。 おっしゃっていることが,やっとわかった気がしたのです。 たしか,Flash5以前からFlashをされていましたね。 以前はボタンしかクリックできなかったです。 でもFlashMX以上(FlashPlayer6以上)では,ムービークリップでも, on (press, release, rollOver, rollOut, dragOver, dragOut) {} が使えます。 ボタンの中にムービークリップを入れて,そのボタンをクリックしても ヒットする範囲は,最初のムービークリップのサイズです。 でも,ムービークリップに直接,onマウスイベント+パンドラを書くとヒットするエリアはMCの大きさや形によって変わります。 だからボタンではなくムービークリップにonマウスイベント+パンドラを書かれると簡単だと思いますよ。 例えば, 2フレームだけのドキュメントをつくり, フレーム1のタイムラインのスクリプトとして, ---------------- stop(); j=1; ---------------- と書いておき, 形や大きさやが変わるムービークリップに, ----------------------------------- on (press) { _root.j++; if (_root.j == 5) { _root.gotoAndStop(2); } this._visible = false; } ----------------------------------- と書いて, それをコピーして,10個ほどコピーしてステージに配置。 10個のうち5個をクリック(press)すると,そのムービークリップは消滅し, j に5点が加算され,5点になるとフレーム2に行くというものになります。 コピーするのでスクリプトは1回だけ書けばいいです。 コピーするのも面倒であれば,スクリプトにコピーさせて, 複数あるMCを動かすのも面倒であればスクリプトで動かせば, ボタン(MC)は1つで済みます。 上のを進化させて, インスタンス名「hitoMC,」というムービークリップをランダムな左の位置から右に動かしすスクリプト例は以下のようになります。 ---フレーム1のスクリプト---------------------------- stop(); i = 1; j = 0; hito_member = 19 //setInterval=○時間後,くりかえして{ }を実行 hito_copy = setInterval(function () { //「hitoMC」をコピー duplicateMovieClip(_root.hitoMC, "hitoMC"+i, i); //コピーされたMCの位置をランダムにセット setProperty("hitoMC"+i, _x, -10); setProperty("hitoMC"+i, _y, random(100)*2+10); if (i == hito_member) { clearInterval(hito_copy); } i++; //この動作を0.5秒(500ミリ秒)に1回くりかえす。 }, 500); ----------------------------------------------- ---「hitoMC」に書くスクリプト--------------------------- onClipEvent (enterFrame) { this._x += 3; } on (press) { _root.j++; if (_root.j == 10) { _root.gotoAndStop(2); } this._visible = false; } ----------------------------------------------- ---フレーム2に書くスクリプト------------------------- k = 1; clear_hito = hito_member; //コピーされたMCを消去 while (clear_hito>0) { removeMovieClip("hitoMC"+k); k++; clear_hito--; } ----------------------------------------------- それぞれの解説を詳細に書くと凄い長さになるので省略します。 とにかく,上のようなものをつくると, 1つのMCが19個(自分も含めて20個)でき, ステージの左から右に動いて, そのうち10個クリックすると「クリアー」画面であるフレーム2に飛ぶ。 というものになります。単なる例です。 いや-, 前回完成されたゲームがやはり見てみたくてたまりません。

irukacyan
質問者

お礼

早速のご回答ありがとうございます。 さすがにクリックゲームとは違い、物体を動かしての アクションは難しいです;; けど、作っている時が一番楽しいので 挫折を繰り返しながらも作っていきたいと思います。 今回のお答え頂いた内容も、サラっと見ただけでは とても私には解釈できる知識がなく、一つずつ解読しながら 是非とも把握したいと思っています。 本当にありがとうございました。 別件となりますが、私の作ったゲームを 拝見して頂けるという事なのでココにURLを記しておきます。 Hit数はそれなりに伸びてはいますが タブン、好評という意味では無いような気がします。 (どれどれ、どんなのだ?と皆さんが見てくれたように思います) (何故かOCNさんのアクセスカウンター壊れてしまってます・・・) 最後に。 エンディングでは、本ゲームを作成する中で 非常にお世話になった方のお名前を無断で記載させて頂いております。 sasakun様にも断り無く勝手にお名前を記載させて 頂いております事を深くお詫び申し上げます。 (もし、ご迷惑であれば修正しますのでおっしゃってください) では、これからも是非、ご指導お願い致します。

関連するQ&A

専門家に質問してみよう