Пример #1
0
    private ITrajectoryData[] InitTrajectoryData(ITrajectoryData data)
    {
        VTrajectoryData source = null;

        if (data is VTrajectoryData)
        {
            source       = data as VTrajectoryData;
            source.Angle = -source.Angle;
        }
        else
        {
            Debug.LogError("当前传入数据类型错误,传入类型为:" + data);
        }

        ITrajectoryData[] datas = new ITrajectoryData[_vCount];
        VTrajectoryData   temp  = null;

        for (int i = 0; i < _vCount; i++)
        {
            temp         = new VTrajectoryData();
            temp.Angle   = source.Angle;
            temp.XPos    = new float[3];
            temp.XPos[0] = _xPos[i * 2];
            temp.XPos[1] = _xPos[i * 2 + 1];
            temp.XPos[2] = _xPos[i * 2 + 2];
            datas[i]     = temp;
        }

        return(datas);
    }
Пример #2
0
    public override void Init(Transform trans, ITrajectoryData data)
    {
        base.Init(trans, data);
        if (data is EllipseData)
        {
            _data = data as EllipseData;
        }
        else
        {
            Debug.LogError("当前传入椭圆形路径的数据类型错误,类型为:" + data);
            return;
        }

        _data.Center = new Vector2(0, (GameUtil.GetCameraMax().y - GameUtil.GetCameraMin().y) * (float)_data.YRatioInScreen);

        float offsetY = _data.Center.y + (float)_data.YRadius;

        _enter.InitByOffsetY(_trans, 0, offsetY, EnterPath.MoveDirection.UP_TO_DOWN);

        Vector2 startPos = new Vector2(_trans.position.x, offsetY);

        _data.StartPos = startPos;

        _trajectory = new EllipseTrajectory();
        _trajectory.Init(_data);
    }
    private void InitComponent(EnemyData data, EnemyType type, Sprite sprite, ITrajectoryData trajectoryData)
    {
        //更新飞机图片
        Renderer = gameObject.AddOrGet <RenderComponent>();
        Renderer.Init();
        Renderer.SetSprite(sprite);
        //路径初始化
        _path = new PathMgr();
        _path.Init(transform, data, trajectoryData);

        gameObject.AddOrGet <CameraMove>().enabled = _path.NeedMoveWithCamera();
        gameObject.AddOrGet <AutoDespawnComponent>();
        gameObject.AddOrGet <EnemyTypeComponent>().Init(type);
        var lifeC = gameObject.AddOrGet <LifeComponent>();

        lifeC.Init(data.life);
        gameObject.AddOrGet <EnemyBehaviour>().Init(data);
        _moveComponent = gameObject.AddOrGet <MoveComponent>();
        _moveComponent.Init((float)data.speed);
        gameObject.AddOrGet <ColliderComponent>();
        gameObject.AddOrGet <PlaneCollideMsgComponent>();
        var bulletMgr = transform.Find("BulletRoot").AddOrGet <EnemyBulletMgr>();

        bulletMgr.Init(data);

        if (_lifeView == null)
        {
            var lifeGo = LoadMgr.Single.LoadPrefabAndInstantiate(Paths.PREFAB_ENEMY_LIFE, transform);
            _lifeView = lifeGo.AddComponent <EnemyLifeView>();
        }

        _lifeView.Init();
    }
    private PlaneEnemyView SpawnEnemy(int id, ITrajectoryData data)
    {
        var plane = PoolMgr.Single.Spawn(Paths.PREFAB_PLANE);
        var enemy = plane.AddOrGet <PlaneEnemyView>();

        enemy.SetPos(transform.position);
        enemy.Init(id, _type, _enemyData, _sprite, data);
        return(enemy);
    }
Пример #5
0
    public override void Init(Transform trans, ITrajectoryData data)
    {
        base.Init(trans, data);
        _state  = PathState.ENTER;
        _vCount = 2;
        InitData();
        InitXRange();
        var datas = InitTrajectoryData(data);

        InitVTrajectory(datas);
        _enterPath.InitByRatio(trans, 0, 0.8f, EnterPath.MoveDirection.LEFT_TO_RIGHT);
    }
Пример #6
0
 public void Init(ITrajectoryData data)
 {
     if (data is StraightTrajectoryData)
     {
         var temp = (StraightTrajectoryData)data;
         Init((float)temp.Angle);
     }
     else
     {
         Debug.LogError("当前传入数据不是直线轨迹数据.data:" + data);
     }
 }
    public void Spawn()
    {
        ITrajectoryData data = _trajectoryData.GetData(_enemyData.trajectoryType);

        if (_spawnQueueNum < _data.QueueNum)
        {
            _spawnQueueNum++;

            for (int i = 0; i < _data.QueuePlaneNum; i++)
            {
                _lastEnemy = SpawnEnemy(i, data);
            }
        }
    }
Пример #8
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];
    }
Пример #9
0
    public void Init(ITrajectoryData data)
    {
        if (data is EllipseData)
        {
            _data = data as EllipseData;
        }
        else
        {
            Debug.LogError("当前数据不是EllipseData类型,类型为:" + data);
            return;
        }

        _xRadius = (float)_data.XRadius;
        _yRadius = (float)_data.YRadius;
        InitPos(_data);
        _middleIndex = _posList.Length / 2;
        _curIndex    = GetStartIndex(_posList, _data.StartPos);
    }
Пример #10
0
 public void Init(Transform trans, ITrajectoryData trajectory)
 {
 }
Пример #11
0
 public void Init(ITrajectoryData data)
 {
     throw new System.NotImplementedException();
 }
Пример #12
0
 public virtual void Init(Transform trans, ITrajectoryData trajectory)
 {
     _trans = trans;
 }
 public override void Init(Transform trans, ITrajectoryData trajectory)
 {
     base.Init(trans, trajectory);
     _enterPath.InitByRatio(trans, 0, 0.8f, EnterPath.MoveDirection.UP_TO_DOWN);
 }
Пример #14
0
 public void Init(Transform trans, EnemyData data, ITrajectoryData trajectoryData)
 {
     _path = PathFactory.GetPath(data.trajectoryType);
     _path.Init(trans, trajectoryData);
 }
 public void Init(int id, EnemyType type, EnemyData data, Sprite sprite, ITrajectoryData trajectoryData)
 {
     gameObject.tag = Tags.ENEMY;
     InitComponent(data, type, sprite, trajectoryData);
     InitPos(id);
 }
 public override void Init(Transform trans, ITrajectoryData data)
 {
     base.Init(trans, data);
     _trajectory = new StraightTrajectory();
     _trajectory.Init(data);
 }