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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     hitTestの効果がおかしい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sarasou
Åê¹ÆNo.28928
投稿日時: 2006-9-26 12:26
新米
居住地:
投稿: 24
使用環境:
WinXP Home SP2
Flash8
hitTestの効果がおかしい
質問させて頂きます。

現在シューティングゲームを習作として製作しているのですが、
どうもhitTestで得られる当たり判定が正常ではないのです。
小さい弾状のものは大丈夫なのですが、
帯状のもの、棒状のものを敵の攻撃として使用すると、
何も触れてない位置にも関わらず自機が被弾してしまいます。

http://okumasama.run.buttobi.net/hittest.fla
http://okumasama.run.buttobi.net/test.swf
上にサンプルをアップしてあります。
右上の黒い四角をクリックすると棒が数本表示され、
正常なら棒に●が触れた瞬間trueになるはずですが、
二本しか反応しない上、妙な位置で反応します(中心近く)

これはプログラムの書き方がいけないのでしょうか。
それとも仕様なのでしょうか。
もし仕様の場合、棒状の攻撃を行った際どのような処理を施せば良いのでしょうか。

よろしくお願い致します。
ebi
Åê¹ÆNo.28934
投稿日時: 2006-9-26 19:23
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: hitTestの効果がおかしい
ebiです。

サンプル、アクセスできません。
sarasou
Åê¹ÆNo.28940
投稿日時: 2006-9-27 5:00
新米
居住地:
投稿: 24
使用環境:
WinXP Home SP2
Flash8
Re: hitTestの効果がおかしい
お手数ですが、外部呼び出した禁じられているようなので、
アドレスバーに直接アドレスをペーストして頂ければ幸いです。
KURAGE
Åê¹ÆNo.28941
投稿日時: 2006-9-27 8:25
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: hitTestの効果がおかしい
こんにちは

>>2本しか反応しない

 全ての棒がキチンと反応しています。
 処理の流れ上hitしていない棒が _root.hitornot を false に書き換えてしまっている為、
 反応していないように見えてしまっているようです。

>>hitTestで得られる判定がおかしい

 こちらも正常に動作しています。
 MovieClip.hitTest(MovieClip) はシェイプではなく、境界ボックスが重なっているかどうかを判定しますので、
 見た目上何も無いエリアでも、境界ボックスが重なっていればtrueを返します。
sarasou
Åê¹ÆNo.28943
投稿日時: 2006-9-27 10:10
新米
居住地:
投稿: 24
使用環境:
WinXP Home SP2
Flash8
Re: hitTestの判定を細かく設定したい
レスありがとうございます。
仰るとおり、プログラムのミスであり、
判定が境界ボックスを使用していたため不具合が生じてしまったようです。


それを踏まえた上で再度主旨を変えて質問させていただきます。

http://okumasama.run.buttobi.net/shootinghit.fla
http://okumasama.run.buttobi.net/shootinghit.swf
(アドレス直ペーストでお願いします)

上のFlashは少し待つと、上に存在する敵インスタンスからビームが自機狙いに発射され、その範囲全体が当たり判定となっています。
当たっているかどうかが右上に表示され、マウスをクリックすると"not hit"にリセットします。自機の移動は矢印キーです。
真下に撃った時はほぼ正しい範囲なのですが、
斜めに撃たせるように誘導させ、真下に逃げ込むと「hit」扱いになってしまいます。
これは境界ボックスが、斜めになっているビームを対角線としてボックスを作っているからだと予想しますが、
これを回避し望んだ当たり判定にするためにはどのような方法があるでしょうか。

よろしくお願い致します。
ebi
Åê¹ÆNo.28945
投稿日時: 2006-9-27 10:33
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: hitTestの判定を細かく設定したい
ebiです。レスで遅れました。
mcではなくポイントで判定してはどうでしょうか。

mc.hitTest(mc)

ではなく

mc.hitTest(x,y,true)

で。


今回の例でいうと

砲撃mc.hitTest(自機x,自機y,true)

ですね。

最後のブーリアンの引数は
trueなら形で判定、falseなら境界線で判定です。
つまりtrueにしておくと例え星形でも正確に
判定できます。ただしその判定対象はポイントなので
注意が必要です。自機のポイントがどこにあるかで微妙に
結果が変わってしまいます。

回避するには自機の四隅に判定ポイントを設定し、
そのどれかに接触したらhit...とか。
それだとそれで処理が間に合わない事も考えられますが。

痛し痒しなので、バランスとってみましょう。
テライユタカ
Åê¹ÆNo.28948
投稿日時: 2006-9-27 11:49
常連
居住地: わかやま
投稿: 88
使用環境:
iMac G5 10.4.9 + iBook G4 10.3.9 + Flash8
Re: hitTestの判定を細かく設定したい
キャラ画像MCとちょっと小さめの当たり判定用MCを別に(画像MCの中に透明の当たり判定用MCを入れ子にする)してみてはどうでしょう?

超有名シューティングゲームでいうと『ゼビウス』の翼は当たり判定ありませんでしたね。
どちらかと言うと、ゲームとしても「おい!今のほんまに当たったか?? 」より「お?、今のセーフか?助かった? 」の方が楽しめるんじゃないでしょうかね。


----------------
TERAI YUTAKA
HomePage: SITE ALPHA

ebi
Åê¹ÆNo.28951
投稿日時: 2006-9-27 11:59
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: hitTestの判定を細かく設定したい
ebiです。

突貫ですがhitTestの概要を捉えるお助けサンプル作りました。

いろいろいじって、ご理解の一助に。

※そういえばテライさんが言われてたやり方で
 シューティング作ってましたわ。(´?`;)ゞエヘヘ
 作りかけでほったらかしですがご参考に。
 自機の内側の黒い●でhitTestしてます。

※ゼビウスなつかしい
sarasou
Åê¹ÆNo.28955
投稿日時: 2006-9-27 12:50
新米
居住地:
投稿: 24
使用環境:
WinXP Home SP2
Flash8
Re: hitTestの判定を細かく設定したい
レスありがとうございました。
わざわざサンプルまで作っていただいて、非常に助かりました。

点で指定すると形で判定できるのですね。全く存じませんでした。
現在Flashを編集できる状況ではないので、後々試してみたいと思います。


*生意気ながら、小さめのヒットボックスは既に使用していたりします。
 体に当たりながらも死んでないというのはなかなか快感なものですよね
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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