home *** CD-ROM | disk | FTP | other *** search
- class com.neodelight.v2D.RectObject extends com.neodelight.v2D.V2DObject
- {
- var collisionStyle;
- var boundingRect;
- var pos;
- var size;
- function RectObject(mc, flags)
- {
- super(mc,flags | com.neodelight.v2D.V2DObject.FlagFixed);
- this.collisionStyle = 2;
- }
- function collisionCheck70(partner)
- {
- 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)
- {
- return 1;
- }
- return 0;
- }
- function collisionCheck71(partner)
- {
- 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)
- {
- var _loc4_ = (partner.p1.x - partner.p0.x) * 0.5;
- var _loc6_ = (partner.p1.y - partner.p0.y) * 0.5;
- var _loc3_ = partner.p0.x + _loc4_;
- var _loc2_ = partner.p0.y + _loc6_;
- if(_loc3_ >= this.pos.x && _loc3_ <= this.pos.x + this.size.x && _loc2_ >= this.pos.y && _loc2_ <= this.pos.y + this.size.y)
- {
- return 1;
- }
- 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_))
- {
- return (_loc4_ - Math.min(Math.abs(this.pos.x - _loc3_),Math.abs(this.pos.x + this.size.x - _loc3_))) / _loc4_;
- }
- 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_))
- {
- return (_loc6_ - Math.min(Math.abs(this.pos.y - _loc2_),Math.abs(this.pos.y + this.size.y - _loc2_))) / _loc6_;
- }
- 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))));
- if(_loc7_ < _loc4_)
- {
- return (_loc4_ - _loc7_) / _loc4_;
- }
- return 0;
- }
- return 0;
- }
- }
-