home *** CD-ROM | disk | FTP | other *** search
- class Vector
- {
- var _x;
- var _y;
- function Vector()
- {
- this._x = 0;
- this._y = 0;
- }
- function Add(rightSide)
- {
- this._x += rightSide._x;
- this._y += rightSide._y;
- }
- function Scale(magnitude)
- {
- this._x *= magnitude;
- this._y *= magnitude;
- }
- function GetLength()
- {
- var _loc2_ = this._x * this._x + this._y * this._y;
- return Math.sqrt(_loc2_);
- }
- function ConvertToUnitVector()
- {
- var _loc2_ = this.GetLength();
- if(_loc2_ != 0)
- {
- this._x /= _loc2_;
- this._y /= _loc2_;
- }
- }
- function GetAngle()
- {
- var _loc2_ = Math.atan2(this._y,this._x);
- var _loc3_ = 360 * _loc2_ / 6.283185307179586;
- return _loc3_;
- }
- function AngleToAlign(dblGivenAngle, dblVelocity, dblTurnSpeed)
- {
- var _loc5_ = 0;
- var _loc2_ = this.GetAngle();
- var _loc3_ = 0;
- if(dblGivenAngle >= 0)
- {
- _loc5_ = dblGivenAngle - 180;
- if(_loc2_ < dblGivenAngle && _loc2_ > _loc5_)
- {
- _loc3_ = (- dblTurnSpeed) * dblVelocity;
- if(_loc2_ - dblGivenAngle > _loc3_)
- {
- _loc3_ = _loc2_ - dblGivenAngle;
- }
- }
- else
- {
- _loc3_ = dblTurnSpeed * dblVelocity;
- if(_loc2_ >= 0)
- {
- if(_loc2_ != _loc5_)
- {
- if(_loc2_ - dblGivenAngle < _loc3_)
- {
- _loc3_ = _loc2_ - dblGivenAngle;
- }
- }
- }
- }
- }
- else
- {
- _loc5_ = dblGivenAngle + 180;
- if(_loc2_ < _loc5_ && _loc2_ > dblGivenAngle)
- {
- _loc3_ = dblTurnSpeed * dblVelocity;
- if(_loc2_ - dblGivenAngle < _loc3_)
- {
- _loc3_ = _loc2_ - dblGivenAngle;
- }
- }
- else
- {
- _loc3_ = (- dblTurnSpeed) * dblVelocity;
- if(_loc2_ < 0)
- {
- if(_loc2_ - dblGivenAngle > _loc3_)
- {
- _loc3_ = _loc2_ - dblGivenAngle;
- }
- }
- }
- }
- return _loc3_;
- }
- function Print()
- {
- }
- }
-