メイン FLASHおもちゃ箱【ゲームについてあれこれ】 ムービークリップの複製どうしの衝突判定の出し方。 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
a24-switch | Åê¹ÆNo.32843 投稿日時: 2007-4-10 15:27 |
新米 居住地: 投稿: 6
使用環境:
Win2000.Flash MX |
ムービークリップの複製どうしの衝突判定の出し方。 どうも、初歩的な質問で申し訳無いのですが、シューティングゲームを作ろうとしているのですが、衝突判定の取り方が分からず困っています。
「自機の撃つ弾」「敵」両方とも「attachMovie」で複製を作って登場させています。 弾はボタン押しっぱなしで出続けます。 敵はランダムで登場します。 その弾と敵との衝突判定を取りたいのですが、何かいい方法無いでしょうか? 弾の複製方法は以下のスクリプトで作っています。 敵は「if」の所でカウントをランダムでとりほぼ同じスクリプトを使い作っています。 Win2000, Flash MXを使っています。 /* if(Key.isDown(67)==true){ newName = "laser_" + laser_c; new_mc = this.attachMovie("laser_mc",newName,100-laser_c); new_mc._x=_root.plane._x; new_mc._y=_root.plane._y-13; laser_c++; } */ |
kipros | Åê¹ÆNo.32847 投稿日時: 2007-4-10 17:23 |
半人前 居住地: 地球 投稿: 41
使用環境:
FlashMX2004 Pro [color=#EDEDED]__[/color]Flash5 [color=#EDEDED]__[/color]FlashPlayer9 WinXP IE7,IE6 |
Re: ムービークリップの複製どうしの衝突判定の出し方。 衝突判定の取るには「hitTest」を使うといいと思います。
|
野中文雄 | Åê¹ÆNo.32849 投稿日時: 2007-4-10 17:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ムービークリップの複製どうしの衝突判定の出し方。 具体的にどこがおわかりにならないのか、ご質問が明確でないように思われます。ご自分でどこまでならおできになるのかを、説明されるべきでしょう。
[1]予め配置した「弾」と「敵」ひとつずつでも「衝突判定の取り方」がわからないということでしたら、kiprosさんの回答されたとおりです。 [2]「弾」や「敵」が「複数」の場合にどう処理すればよいかというご質問なら、for文を使った繰返し(ループ)処理を学ぶ必要があります。 [3]MovieClip.attachMovie()メソッドでダイナミックに配置したインスタンスの管理について問われている場合には、たとえば「敵」を配列に格納し、「弾」はその配列内のインスタンスと「衝突判定」をする方法が考えられます。 引用: a24-switchさんは書きました: |
a24-switch | Åê¹ÆNo.32851 投稿日時: 2007-4-10 18:12 |
新米 居住地: 投稿: 6
使用環境:
Win2000.Flash MX |
説明が足りなくて申し訳ありません。 kipros様、返答いただきありがとうございます。
野中様の言うとうりです。 どこまで出来るかの説明が抜けていました。 すいません。 一応、すでに配置済みのムービークリップ同士でなら「hitTest」での判定は行えます。 一度「for」文での方法というのに挑戦してみたいと思います。 |
野中文雄 | Åê¹ÆNo.32852 投稿日時: 2007-4-10 18:30 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 説明が足りなくて申し訳ありません。 「複数のmcをすべて指定する方法」のスレッドが、参考になるかもしれません。ほかにも、「for hitTest」あたりで、フォーラムを検索されるとよいでしょう。
引用: a24-switchさんは書きました: |
a24-switch | Åê¹ÆNo.32854 投稿日時: 2007-4-10 19:02 |
新米 居住地: 投稿: 6
使用環境:
Win2000.Flash MX |
ありがとうございます。 野中様、ありがとうございます。
一応色々と試してみたのですが、「for」文がうまく機能しなくて困っていた所です。 フォーラムを読み、もう一度挑戦してみたいと思います。 |
a24-switch | Åê¹ÆNo.32856 投稿日時: 2007-4-10 19:39 |
新米 居住地: 投稿: 6
使用環境:
Win2000.Flash MX |
解決いたしました。 以下のスクリプトを読み込むムービークリップの中に書き込む事で解決いたしました。
ありがとうございます。 スレッドの内容大変勉強になりました。 /* for (num=0;num<80;num++) { if (this._parent.hitTest(_root["beam_"+num])) { ヒット時の処理; break; } } */ |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |