ホームページ ウェブフロントエンド jsチュートリアル javascript_javascript スキルを使用したゲーム開発における衝突検出用のカプセル化コード

javascript_javascript スキルを使用したゲーム開発における衝突検出用のカプセル化コード

May 16, 2016 pm 04:06 PM
javascript ゲーム開発 衝撃チェック

JavaScript を使用して Web ゲームを開発する場合、開発を容易にするために衝突検出が必要です。長方形と円形の 2 つの衝突検出メソッドがカプセル化されています。

【ケース操作で1つをキャプチャ】
[注: コードは最適化されていません]

デモ画像

キャラクター攻撃エリア衝突検出.gif

タワーディフェンスケース.gif

長方形領域の衝突検出

/**
 * 矩形区域碰撞检测
 * Created by Administrator on 14-4-7.
 * author: marker
 */
function Rectangle(x, y, _width, _height){
  this.x = x;
  this.y = y; 
  this.width = _width;
  this.height = _height;
   
  //碰撞检测(参数为此类)
  this.intersects = function(obj){
    var a_x_w = Math.abs((this.x+this.width/2) - (obj.x+obj.width/2));
    var b_w_w = Math.abs((this.width+obj.width)/2);
    var a_y_h = Math.abs((this.y+this.height/2) - (obj.y+obj.height/2)); 
    var b_h_h = Math.abs((this.height+obj.height)/2);
    if( a_x_w < b_w_w && a_y_h < b_h_h ) return true;
    else return false;
  }
 
}
ログイン後にコピー

円形領域の衝突検出

/**
 * 圆形区域碰撞检测
 * Created by Administrator on 14-4-7.
 * author: marker
 *
 */
function RadiusRectangle(x, y, radius){
  this.x = x;
  this.y = y;
  this.radius = radius;
 
  //碰撞检测(参数为此类)
  this.intersects = function(rr){
    var maxRadius = rr.radius + this.radius;
    // 已知两条直角边的长度 ,可按公式:c&sup2;=a&sup2;+b&sup2; 计算斜边。
    var a = Math.abs(rr.x - this.x);
    var b = Math.abs(rr.y - this.y);
    var distance = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));// 计算圆心距离
    if(distance < maxRadius){
      return true;
    }
    return false;
  }
}
ログイン後にコピー

以上がこの記事の全内容です。皆さんの JavaScript の理解に役立つことを願っています。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

Go で素晴らしいゲームを構築する Go で素晴らしいゲームを構築する Apr 08, 2024 am 10:24 AM

Go を使用して素晴らしいゲームを構築するには、次の手順が必要です: プロジェクトのセットアップ: Git を使用して新しいプロジェクトを作成し、必要なファイルを作成します。ゲーム ロジックを作成する: 数字当てゲームなど、コア ゲーム ロジックを game.go に作成します。エントリ ポイントを作成する: main.go にゲームのエントリ ポイントを作成し、ユーザー入力と推測の処理を可能にします。コンパイルして実行: ゲームをコンパイルして実行します。実際の例は数字当てゲームです。ユーザーは 0 から 99 までの数字を入力し、フィードバックを得ることができます。

C++ でゲームの物理学と衝突検出を最適化するにはどうすればよいですか? C++ でゲームの物理学と衝突検出を最適化するにはどうすればよいですか? Jun 03, 2024 pm 01:57 PM

ゲームの物理学を最適化するために、この記事では 4 つのテクニックを紹介します。1) 空間分割によりワールドをより小さな領域に分割し、不必要な衝突チェックを迅速に排除します。2) ワイドフェーズ衝突検出では大まかな衝突チェックにプロキシ ボディを使用します。3) 遅延計算値。必要な場合にのみ衝突検出を実行します。 4) マルチスレッドは、同時実行性を向上させるために衝突検出タスクを複数のスレッドに分散します。これらのテクノロジーを適用することで、ゲームのパフォーマンスが大幅に向上し、よりスムーズな体験が可能になります。

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。

ゲーム開発用の Java フレームワークを選択する方法 ゲーム開発用の Java フレームワークを選択する方法 Jun 06, 2024 pm 04:16 PM

ゲーム開発で Java フレームワークを選択するときは、プロジェクト固有のニーズを考慮する必要があります。利用可能な Java ゲーム フレームワークには次のものがあります。 LibGDX: クロスプラットフォームの 2D/3D ゲームに適しています。 JMonkeyEngine: 複雑な 3D ゲームの構築に使用されます。 Slick2D: 軽量の 2D ゲームに適しています。 AndEngine: Android 専用に開発された 2D ゲーム エンジン。 Kryonet: ネットワーク接続機能を提供します。たとえば、2DRPG ゲームの場合、クロスプラットフォームのサポート、軽量設計、アクティブなコミュニティにより LibGDX が最適です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

See all articles