home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Acao / midnightstrike1.swf / scripts / __Packages / com / neodelight / v2D / RectObject.as < prev    next >
Encoding:
Text File  |  2007-04-02  |  2.4 KB  |  50 lines

  1. class com.neodelight.v2D.RectObject extends com.neodelight.v2D.V2DObject
  2. {
  3.    var collisionStyle;
  4.    var boundingRect;
  5.    var pos;
  6.    var size;
  7.    function RectObject(mc, flags)
  8.    {
  9.       super(mc,flags | com.neodelight.v2D.V2DObject.FlagFixed);
  10.       this.collisionStyle = 2;
  11.    }
  12.    function collisionCheck70(partner)
  13.    {
  14.       if(this.boundingRect.p0.x <= partner.p1.x && this.boundingRect.p1.x >= partner.p0.x && this.boundingRect.p0.y <= partner.p1.y && this.boundingRect.p1.y >= partner.p0.y)
  15.       {
  16.          return 1;
  17.       }
  18.       return 0;
  19.    }
  20.    function collisionCheck71(partner)
  21.    {
  22.       if(this.boundingRect.p0.x <= partner.p1.x && this.boundingRect.p1.x >= partner.p0.x && this.boundingRect.p0.y <= partner.p1.y && this.boundingRect.p1.y >= partner.p0.y)
  23.       {
  24.          var _loc4_ = (partner.p1.x - partner.p0.x) * 0.5;
  25.          var _loc6_ = (partner.p1.y - partner.p0.y) * 0.5;
  26.          var _loc3_ = partner.p0.x + _loc4_;
  27.          var _loc2_ = partner.p0.y + _loc6_;
  28.          if(_loc3_ >= this.pos.x && _loc3_ <= this.pos.x + this.size.x && _loc2_ >= this.pos.y && _loc2_ <= this.pos.y + this.size.y)
  29.          {
  30.             return 1;
  31.          }
  32.          if(this.pos.y <= _loc2_ && this.pos.y + this.size.y >= _loc2_ && (Math.abs(this.pos.x - _loc3_) <= _loc4_ || Math.abs(this.pos.x + this.size.x - _loc3_) <= _loc4_))
  33.          {
  34.             return (_loc4_ - Math.min(Math.abs(this.pos.x - _loc3_),Math.abs(this.pos.x + this.size.x - _loc3_))) / _loc4_;
  35.          }
  36.          if(this.pos.x <= _loc3_ && this.pos.x + this.size.x >= _loc3_ && (Math.abs(this.pos.y - _loc2_) <= _loc6_ || Math.abs(this.pos.y + this.size.y - _loc2_) <= _loc6_))
  37.          {
  38.             return (_loc6_ - Math.min(Math.abs(this.pos.y - _loc2_),Math.abs(this.pos.y + this.size.y - _loc2_))) / _loc6_;
  39.          }
  40.          var _loc7_ = Math.min(com.neodelight.std.XMath.p2pDistance(_loc3_,_loc2_,this.pos.x,this.pos.y),Math.min(com.neodelight.std.XMath.p2pDistance(_loc3_,_loc2_,this.pos.x + this.size.x,this.pos.y),Math.min(com.neodelight.std.XMath.p2pDistance(_loc3_,_loc2_,this.pos.x,this.pos.y + this.size.y),com.neodelight.std.XMath.p2pDistance(_loc3_,_loc2_,this.pos.x + this.size.x,this.pos.y + this.size.y))));
  41.          if(_loc7_ < _loc4_)
  42.          {
  43.             return (_loc4_ - _loc7_) / _loc4_;
  44.          }
  45.          return 0;
  46.       }
  47.       return 0;
  48.    }
  49. }
  50.