トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   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」を使うといいと思います。


[弾].onEnterFrame = function(){
	if(this.hitTest([敵])){
		trace("HIT!!");
	}
};
こんな感じでどうでしょう?
野中文雄
Åê¹Æ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さんは書きました:
一応、すでに配置済みのムービークリップ同士でなら「hitTest」での判定は行えます。
一度「for」文での方法というのに挑戦してみたいと思います。


----------------
 

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;
 }
}
*/
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops