Heim > Web-Frontend > js-Tutorial > Kapselungscode zur Kollisionserkennung in der Spieleentwicklung unter Verwendung von Javascript_Javascript-Kenntnissen

Kapselungscode zur Kollisionserkennung in der Spieleentwicklung unter Verwendung von Javascript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 16:06:57
Original
1456 Leute haben es durchsucht

Bei der Entwicklung von Webspielen mit JavaScript ist eine Kollisionserkennung erforderlich. Um die Entwicklung zu erleichtern, sind zwei Kollisionserkennungsmethoden, rechteckig und kreisförmig, gekapselt.

【Einen mit Fallbetrieb erfassen】
[Hinweis: Der Code wurde nicht optimiert]

Demobild

Charakter-Angriffsbereich-Kollisionserkennung.gif

Tower Defense Case.gif

Kollisionserkennung für rechteckige Bereiche

/**
 * 矩形区域碰撞检测
 * 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;
  }
 
}
Nach dem Login kopieren

Kreisflächen-Kollisionserkennung

/**
 * 圆形区域碰撞检测
 * 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;
  }
}
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird jedem beim Verständnis von Javascript helfen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage