0

私はできるだけ問題を説明しようとします。私がやりたいのは、オブジェクト間の衝突をチェックすることです。また、弾丸と敵、それが弾丸の1つと敵の1つであれば問題ありませんが、グーグルで1日後、すべての解決策のように試した後、それを機能させることができないか、解決策を見つけましたそれは絶対にひどい説明です。私はそれを簡単にするつもりです。そのドキュメントクラスとしてMainClass.asがあります。敵用と弾丸用の1つのクラスです。みんなに理解してもらいたいので、弾丸が敵かどうかはチェックしたくない。またはその逆。たとえばクリックしながら弾丸が作成されるため、弾丸を直接参照することはできません。私が試したのはスプライトコンテナを使用することです。確認するためだけに敵に弾丸を置くと機能します。しかし、私が1つを上下に配置しても、それは敵に当たっていません。それでも、敵が当たったと言います。敵はステージ上にドラッグされていることに注意してください。複数の敵がいるからです。コードで追加することもできます。アレイを使用してすべての敵をシャッフルしようとしましたが、機能させることができません。

私はこれが多くのテキストであったことを知っています。誰かが喜んで私を助けてくれることを願っています、それはとてもイライラしています...

よろしくHFherasen!:) :)

4

1 に答える 1

1

Box2DFlashのような物理エンジンを使用しないと、イライラする可能性があります。

まず、弾丸の速度/フレームを知る必要があります。これは、1つのフレームで目標を超えると、単純な検出が機能しないためです。それよりも、弾丸の速度と方向が必要です。簡単にするために、その1点を使用します。(弾丸の頭、または中央)弾丸は通常、ターゲットよりもはるかに速く移動するため、ターゲットが固定されていると見なすことができます。ターゲットは長方形、または回転している可能性のあるポリゴンです。

これで、ターゲットと弾丸の線(点と方向から)ができました。 http://keith-hair.net/blog/2008/08/04/find-intersection-point-of-two-lines-in-as3/ これを(as3に変換して)ターゲットのすべての側面で使用できます(または弾丸に面しているものだけ)、そして1つが一致した場合、ショットはターゲットにヒットします。弾丸が遅い場合は、最初の行としてフレームの位置を変更できます。あなたが知っているよりも、それがターゲットに当たったとき。これはかなり高速で、うまく機能します。お役に立てば幸いです。

于 2012-12-03T12:29:00.967 に答える