示例#1
0
 private void InitStraights(VTrajectoryData data)
 {
     _straights    = new StraightTrajectory[2];
     _straights[0] = new StraightTrajectory();
     _straights[0].Init((float)data.Angle);
     _straights[1] = new StraightTrajectory();
     _straights[1].Init(-(float)data.Angle);
 }
示例#2
0
 public bool SetCurrentTrajectory(float x)
 {
     if (x >= _xPos[0] && x <= _xPos[2])
     {
         _currentTrajectory = _straights[GetTrajectoryIndex(x)];
         return(true);
     }
     else
     {
         return(false);
     }
 }
 public static ITrajectory[] GetStraightArray(int[] data)
 {
     ITrajectory[] array;
     array = new ITrajectory[data.Length];
     for (int i = 0; i < data.Length; i++)
     {
         var s = new StraightTrajectory();
         s.Init(data[i]);
         array[i] = s;
     }
     return(array);
 }
示例#4
0
    public void Init(ITrajectoryData data)
    {
        if (data is VTrajectoryData)
        {
            _data = data as VTrajectoryData;
        }
        else
        {
            Debug.LogError("当前传入数据类型错误,传入类型为:" + data);
        }

        _xPos = _data.XPos;
        InitStraights(_data);
        _currentTrajectory = _straights[0];
    }
    public void Trajectory(Action <ITrajectory[]> callBack)
    {
        if (_trajectories == null)
        {
            var tempList    = new List <ITrajectory>();
            var angleOffset = 5;
            StraightTrajectory temp;
            for (var curAngle = 60; curAngle < 120; curAngle += angleOffset)
            {
                temp = new StraightTrajectory();
                temp.Init(curAngle);
                tempList.Add(temp);
            }

            _trajectories = tempList.ToArray();
        }

        callBack(_trajectories);
    }
    protected override ITrajectory[] GetTrajectory()
    {
        var data       = GameDataMgr.Single.Get <AllBulletData>().Enemy_Boss_1;
        var rotateData = data.trajectory[0];

        if (_angle == 0)
        {
            _angle   = (float)rotateData.StartAngle;
            _forward = true;
        }


        if (_angle < rotateData.EndAngle)
        {
            _forward = false;
        }
        else if (_angle > rotateData.StartAngle)
        {
            _forward = true;
        }

        if (_forward)
        {
            _angle += (float)rotateData.RotateOffset;
        }
        else
        {
            _angle -= (float)rotateData.RotateOffset;
        }

        StraightTrajectory trajectory = new StraightTrajectory();

        trajectory.Init(_angle);
        _trajectories[0] = trajectory;
        return(_trajectories);
    }
示例#7
0
 public float[] GetY(float x, Vector2 startPos)
 {
     _currentTrajectory = _straights[GetTrajectoryIndex(x)];
     return(_currentTrajectory.GetY(x, startPos));
 }
 public override void Init(Transform trans, ITrajectoryData data)
 {
     base.Init(trans, data);
     _trajectory = new StraightTrajectory();
     _trajectory.Init(data);
 }