Actionscript hitTestObject方法fal通过newar角点

Actionscript hitTestObject方法fal通过newar角点,actionscript,Actionscript,两个矩形和给定的实例名w1和w2那么,当我试图通过两个矩形时,它们卡在拐角处,但我看到它们彼此相距很远,如何才能非常接近地通过呢 请以问题的形式重新措辞。告诉我们出了什么问题,不要说去测试。事实上,我有两个矩形转换为符号,命名为w1和w2。我想让w1矩形通过w2矩形的角附近,但如果你让它们通过角附近,它们会相撞很远 addEventListener(Event.ENTER_FRAME, moveplayer); var left,right,up,back:Boolean; // both

两个矩形和给定的实例名
w1
w2
那么,当我试图通过两个矩形时,它们卡在拐角处,但我看到它们彼此相距很远,如何才能非常接近地通过呢


请以问题的形式重新措辞。告诉我们出了什么问题,不要说去测试。事实上,我有两个矩形转换为符号,命名为w1和w2。我想让w1矩形通过w2矩形的角附近,但如果你让它们通过角附近,它们会相撞很远
addEventListener(Event.ENTER_FRAME, moveplayer);
var left,right,up,back:Boolean;


// both rectangles were given  instancename as w1 and w2 and drawn on stage manually


stage.addEventListener(KeyboardEvent.KEY_DOWN ,keypress);
stage.addEventListener(KeyboardEvent.KEY_UP ,keyup);
//gray box movement key
function keypress(event:KeyboardEvent  ):void
{


          if (event.keyCode == 37)
          {
                    left = true;


          }
          else if (event.keyCode==38)
          {
                    up = true;


          }
          else if (event.keyCode==39)
          {
                    right = true;


          }
          else if (event.keyCode==40)
          {
                    back = true;


          }
}




function keyup(event:KeyboardEvent ):void
{


          if (event.keyCode == 37)
          {
                    left = false;
          }
          else if (event.keyCode==38)
          {
                    up = false;




          }
          else if (event.keyCode==39)
          {
                    right = false;


          }
          else if (event.keyCode==40)
          {
                    back = false;


          }


}
//grey box movement
function moveplayer(event:Event ):void
{


//hit test
          if (w1.hitTestObject(w2))
          {
                    trace("hit");


//function call to repulse back
                    repulse();
          }
          else
          {
// function call to move
                    go();
          }




//rotation
          if (left)
          {
                    rotateit("left");
          }
          else if (right)
          {
                    rotateit("right");
          }












          function rotateit( direc:String)
          {


                    if (direc == "left")
                    {
                              w1.rotation -=  1;
                    }
                    else if (direc == "right")
                    {
                              w1.rotation +=  1;


                    }


          }
}






//move function
function go()
{
          if (up)
          {
                    var x2:Number = w1.x;
                    var y2:Number = w1.y;
                    //trace(x2,y2)
                    var speed:Number = 5;
                    w1.x +=  speed * Math.sin(w1.rotation * 2 * Math.PI / 360);
                    w1.y -=  speed * Math.cos(w1.rotation * 2 * Math.PI / 360);


          }
}
//repulsion function


function repulse()
{




          var x1:Number = w1.x;
          var y1:Number = w1.y;
          trace(x1,y1);
          var speed:Number = 5;
          w1.x +=   -  (speed * Math.sin(w1.rotation * 2 * Math.PI / 360));
          w1.y -=   -  (speed * Math.cos(w1.rotation * 2 * Math.PI / 360));
}