メイン コーダーズルーム【スクリプト系】 あるMCがどのMCと当たっているか調べる方法 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
emore | Åê¹ÆNo.33303 投稿日時: 2007-5-11 12:25 |
新米 居住地: 投稿: 15
使用環境:
MacOSX 10.8.5 Flash CC Flash Player11.8 |
あるMCがどのMCと当たっているか調べる方法 AというMCが画面上を動いていて、
多数配置してある静止しているどれかのMCに重なったときに そのMCに対してある処理を行おうとしています。 このような場合、MCの数が少なければfor文でまわして それぞれのMCにhitTestをするか、 各MCからAに対してhitTestをすればよいと思うのですが、 数が多いと効率的でなく、何かよい方法があればと思っております。 知りたいのはAというMCが今どのMCと当たっているかということなのですが、 このあたりの処理について詳しい方がいらっしゃいましたら、 ぜひお伝えいただければと思います。 よろしくお願いします。 |
piemaru | Åê¹ÆNo.33322 投稿日時: 2007-5-14 20:31 |
半人前 居住地: さいたま 投稿: 46
使用環境:
OS: WinXP Flashバージョン:8,CS3 |
Re: あるMCがどのMCと当たっているか調べる方法 こんにちは、emoreさん。
MC「A」からみて、多くのMCと衝突しているかどうか見ようとするので、難しくなってしまうのではないでしょうか。 逆に、その配置してあるMCからみて、「A」に対してhitTest()したら、いかがでしょうか? 各MCに、
というような感じで。
|
emore | Åê¹ÆNo.33324 投稿日時: 2007-5-14 22:16 |
新米 居住地: 投稿: 15
使用環境:
MacOSX 10.8.5 Flash CC Flash Player11.8 |
Re: あるMCがどのMCと当たっているか調べる方法 piemaruさん、ありがとございます!
引用:
それも考えたのですが、処理の早さという点ではAからすべてにhitTest()する場合と、もしかしたらそれほど変わらないのかとも思いまして… どちらにしろonEnterFrameでの処理となると数が多いと重くなりそうですし。 _droptargetみたいなものが、MCをドラッグしなくても使えれば一番いいんですけど… |
nabe_1234 | Åê¹ÆNo.33325 投稿日時: 2007-5-15 0:01 |
新米 居住地: 投稿: 21
使用環境:
Windows Vista Home Premium SP1,Flash CS3 |
Re: あるMCがどのMCと当たっているか調べる方法 > 多数配置してある静止しているどれかのMC
例えば、ピンボールのように、 縦長の画面に色んな装置が配置してある場合、 MCを配列に突っ込んで、Y座標でソートしておけば、 「もしかしたら衝突しているかも知れないMC」を バイナリサーチの要領で絞り込めるかも。 |
永井勝則 | Åê¹ÆNo.33328 投稿日時: 2007-5-15 9:38 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: あるMCがどのMCと当たっているか調べる方法 たぶん、非常に多くのムービークリップがあって、それらの位置を常に監視している必要がある状況かと思うので、
onEnterFrameやsetInterval関数による定期的な監視は必要かと思います。 以下はアイデアです。 ・たぶん、Flash Playerののそのそした動きが障害になっているのかと思うので、 AS3+Flash Player 9を試す方法もあるかと思います。 ・MovieClip.hitTest()は捨て、ピタゴラスの定理の2点間の距離を使う方法もあるかと思います。 ・ムービークリップは動かず、静止しているだけなら、hitTest()は捨て、 その座標値や状態などを使った数学的な方法もあるかと思います。
|
__kjx | Åê¹ÆNo.33378 投稿日時: 2007-5-17 18:46 |
新米 居住地: 投稿: 4
使用環境:
WinXP SP2,Flash8 Pro,Flex2 |
Re: あるMCがどのMCと当たっているか調べる方法 どこかに載っていた情報をブックマークしたおいたものですが、
・ステージを分割して判定するアルゴリズム http://lab.polygonal.de/articles/recursive-dimensional-clustering/ ・BitmapDataを利用した判定方法 http://www.gskinner.com/blog/archives/2005/10/source_code_sha.html こんなんとか参考になるかもです。 |
emore | Åê¹ÆNo.33455 投稿日時: 2007-5-23 22:32 |
新米 居住地: 投稿: 15
使用環境:
MacOSX 10.8.5 Flash CC Flash Player11.8 |
Re: あるMCがどのMCと当たっているか調べる方法 nabe_1234さん、永井勝則さん、__kjxさん、ありがとうございます!!!
一週間ほど家を離れてネットのない環境にいたもので、 お返事の方遅れてしまい大変申し訳ありませんでした… nabe_1234さん> バイナリサーチ、初耳でしたので、調べてみたのですが、 これで高速化は図れそうな感じはしました。 あとは実際に組んでみてという感じですね。 永井勝則さん> hitTest()のために効率が悪そうな感じはしていましたので、 バイナリサーチのような感じになるのかもしれませんが、 確かに座標で調べてというのは有効な感じがしますね。 AS3については、まだ試したことがないので、 CS3が出てからそちらの方も試してみたいと思います。 __kjxさん> 英語ページなので、まだきちんと見れていないのですが、 BitmapDataというのはよさそうな感じがしますね。 hittest()と違って、きちんと形も判別してくれそうですし。 まずはバイナリサーチ、BitmapDataあたりを試してみたいと思います。 本当にみなさんありがとうございました!! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |