在canvas起点在(0,0)时已经可以点击获取刚体,但是当canvas起点不在(0,0)时则无法获取,求指点?

解决方案 »

  1.   

    canvas起点为(0,0)时代码如下
    GetBodyClass.prototype.getBodyByClick=function(event){
       
       var x = event.layerX;
       if(!x) x = event.x;
       var y = event.layerY;
       if(!y) y = event.y;
       var canvasClickX=x-this.dis_left-this.canvasBorder;
       var canvasClickY=y-this.dis_top-this.canvasBorder;
       this.mousePVec= new b2Vec2(canvasClickX, canvasClickY);
       this.aabb= new b2AABB();
       this.aabb.minVertex.Set(this.mousePVec.x - 0.001, this.mousePVec.y - 0.001);
       this.aabb.maxVertex.Set(this.mousePVec.x + 0.001, this.mousePVec.y + 0.001);
       var k_maxCount= 10;
       var shapes= new Array();
       var count= this.world.Query(this.aabb, shapes, k_maxCount);
       
       var findBody= null;
       for (var i= 0; i < count; ++i)
       {
      if (shapes[i].GetBody().IsStatic() == false )
      {
     var tShape= shapes[i];
     var inside=tShape.GetBody();
     if (inside)
     {
    findBody = tShape.GetBody();
    break;
     }//if
      }//if
       }//for i
    this.slectBody=findBody;
    };