メイン コーダーズルーム【スクリプト系】 hitTest(shapeFlag=true)の衝突判定の基準を教えてください | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
RK_Flash | Åê¹ÆNo.39881 投稿日時: 2008-8-12 1:43 |
新米 居住地: 投稿: 7
使用環境:
---------------- 使用環境 WinXP Pro SP2 Pro8.0 ProCS3 FlashPlayer 9,0,124,0(FireFox2) |
hitTest(shapeFlag=true)の衝突判定の基準を教えてください はじめまして。
台形をヒット領域としてhitTestを実行した場合 台形のはじっこあたりと衝突判定を行った時に trueになる基準がわからない事があったので教えていただけると助かります。 【環境】-------------------------------- ・WinXP Pro SP2 ・Flash8(パブリッシュはAS2.0) ---------------------------------------- 【確認方法】 ■テスト用のオブジェクト等を作成します。 1. 正方形のムービークリップインスタンス「point」を作成。x:200、y:200とします。 2. 台形のムービークリップインスタンス「hani」を作成。(正方形を45度回転させたもの)w:200、h:200とします。 3. フレームスクリプトに以下のコードを書きます。
■そして、以下のテストをします。 a. 「hani」のxを300にしてムービープレビュー→出力はfalse b. 「hani」のxを299.4にしてムービープレビュー→出力はfalse c. 「hani」のxを299.3にしてムービープレビュー→出力はtrue (pointのプロパティ) (aの時のhaniのプロパティ) (bの時のhaniのプロパティ) (cの時のhaniのプロパティ) (flaソース) bとcで結果が分かれる理由がわからなかったので、 教えていただけると幸いです。 どうぞ宜しくお願いします。 |
ひろゆき | Åê¹ÆNo.39882 投稿日時: 2008-8-12 2:20 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: hitTest(shapeFlag=true)の衝突判定の基準を教えてください 引用:
RK_Flashさんは書きました: 正方形と台形の衝突判定をしているわけではないので、 あくまでも、点と台形の衝突判定。 なので、台形内に、点があれば、true ですし、 台形内に、点がなければ、falseです。 単に、点(200, 200)が、hani 内にあるかないかの違いだと思いますが。 逆に、shapFlag = false の場合、衝突判定は、台形の「境界ボックス」によって行われます。 おそらく、この「境界ボックス」は、計算上、整数値として判定されているように思われますので、 shapFlag = false の場合の方が、誤差があるのではないでしょうか? また、テストをされるのであれば、 以下のようにテストされても良いように思います。 point の _x は195、 hani の _x は300。 _root 第1フレームに
数値の丸め誤差の問題や、プロパティの丸め誤差の問題も含まれているように思います。
|
RK_Flash | Åê¹ÆNo.39892 投稿日時: 2008-8-12 21:58 |
新米 居住地: 投稿: 7
使用環境:
---------------- 使用環境 WinXP Pro SP2 Pro8.0 ProCS3 FlashPlayer 9,0,124,0(FireFox2) |
Re: hitTest(shapeFlag=true)の衝突判定の基準を教えてください mayor様、ご回答ありがとうございました。
引用: あくまでも、点と台形の衝突判定。 そうですね、正方形に意味はなかったですね。 引用: 逆に、shapFlag = false の場合、衝突判定は、台形の「境界ボックス」によって行われます。 ご提示いただいたテストをしたところ、おっしゃる通り shapFlag = false の場合は境界ボックスが整数値のようですね。 【テスト結果】
shapFlag = true の場合は、「point」が移動した場合と「hani」が移動した場合とでは、true⇔falseの境目の時のムービークリップ間の距離(幅)が異なっていますね。 試しに、私の投稿時のテストで 「point」のxを200.1、「hani」のxを299.4にしてムービープレビューした場合、出力はfalseになりました。 (「point」のxを200、「hani」のxを299.3はtrueなので不思議ですね) 引用: 数値の丸め誤差の問題や、プロパティの丸め誤差の問題も含まれているように思います。 こちらが関係しているのでしょうね…。 では、どうも有難うございました。 大変勉強になりました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |