ホームページ  >  記事  >  ウェブフロントエンド  >  ライブラリを使用せずに JavaScript で衝突検出を実装するにはどうすればよいですか?

ライブラリを使用せずに JavaScript で衝突検出を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-20 11:24:30768ブラウズ

How to Implement Collision Detection in JavaScript without Libraries?

JavaScript での衝突検出

問題: jQuery や gameQuery などのライブラリを使用せずに JavaScript で衝突検出を実装する移動オブジェクトを伴う単純なシナリオ。

解決策:

2 つのオブジェクト間の衝突を検出するには、単純な外接四角形ルーチンを使用できます。各オブジェクトを表す四角形が位置と寸法を比較することによって重なり合っているかどうかを計算します。

関数 isCollide() は、オブジェクト a と b によって表される四角形が交差するかどうかをチェックします。

<code class="javascript">function isCollide(a, b) {
    return !(
        ((a.y + a.height) < (b.y)) ||
        (a.y > (b.y + b.height)) ||
        ((a.x + a.width) < b.x) ||
        (a.x > (b.x + b.width))
    );
}</code>

ここで:

  • a と b は、プロパティ x、y、幅、高さを持つオブジェクトです。

この関数を使用するには、関連するオブジェクトの位置を含む配列を作成できます。衝突検知で。次に、配列を反復処理して、移動オブジェクトが事前定義されたオブジェクトのいずれかと衝突するかどうかを確認できます。

この境界四角形ルーチンを使用すると、複雑な処理を必要とせずに、JavaScript で基本的な衝突検出を実装できます。

対話型の例:

[ここ](https://codepen.io/MixerOID/pen/Rwgeob) をクリックして、 isCollide() 関数の動作中。移動オブジェクト間の衝突の検出を示しています。

以上がライブラリを使用せずに JavaScript で衝突検出を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。