public BarrageUserControl()
        {
            InitializeComponent();

            barrageConfig = new BarrageConfig(canvas);
            Barrage.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
            //设置弹幕高度
            Barrage.Height = barrageConfig.height;
        }
Esempio n. 2
0
 public void LoadConfigs()
 {
     ItemConfig.LoadCsvCfg();
     AnimConfig.LoadCsvCfg();
     PlayerConfig.LoadCsvCfg();
     MonsterConfig.LoadCsvCfg();
     BossConfig.LoadCsvCfg();
     BuffConfig.LoadCsvCfg();
     SkillConfig.LoadCsvCfg();
     LevelConfig.LoadCsvCfg();
     BulletConfig.LoadCsvCfg();
     BarrageConfig.LoadCsvCfg();
     ColliderConfig.LoadCsvCfg();
 }
Esempio n. 3
0
    /// <summary>
    /// 创建弹幕
    /// </summary>
    void CreateBarrage(int index)
    {
        float damageRatio = _skill.DamageRatio.Count > index ? _skill.DamageRatio[index] : _skill.DamageRatio[0];
        float damage      = m_Owner.GetAttribute(E_Attribute.Atk.ToString()).GetTotalValue() * damageRatio / 100;

        int       barrageId  = _skill.BarrageId.Count > index ? _skill.BarrageId[index] : _skill.BarrageId[0];
        var       barrageCfg = BarrageConfig.GetData(barrageId);
        var       bullet     = ResourceManager.Load <GameObject>(PathManager.GetBulletPath("Bullet_" + _skill.BulletId));
        Transform parent     = null;

        if (barrageCfg.IsFollow)
        {
            parent = m_Owner.transform;
        }
        if (m_Owner == GameManager.Player)
        {
            ShootManager.Instance.Shoot(parent, m_Owner.gameObject, bullet, damage, barrageCfg, GameConfig.Instance.EnemyLayer);
        }
        else
        {
            ShootManager.Instance.Shoot(parent, m_Owner.gameObject, bullet, damage, barrageCfg, GameConfig.Instance.PlayerLayer);
        }
    }
Esempio n. 4
0
    public void Init(GameObject bullet, bool isFaceRight, Vector3 bulletDir, float bulletDamage, BarrageConfig barrageCfg, int targetLayer)
    {
        _bullet                        = bullet;
        _bulletDir                     = bulletDir;
        _isFaceRight                   = isFaceRight;
        _targetLayer                   = targetLayer;
        _bulletDamage                  = bulletDamage;
        _emitterCount                  = barrageCfg.Count;
        _shootType                     = barrageCfg.BarrageType;
        _createEmitterOffest           = barrageCfg.Offest;
        _createEmitterIntervalTime     = barrageCfg.BirthIntervalTime;
        _createEmitterIntervalDistance = barrageCfg.BirthIntervalDistance;

        _shootWave         = barrageCfg.Wave;
        _shootIntervalTime = barrageCfg.ShootIntervalTime;
    }
Esempio n. 5
0
    public override void OnStay()
    {
        if (!_completed)
        {
            timeCount += GameManager.DeltaTime;
            if (timeCount > Delay)
            {
                Transform     parent = null;
                BarrageConfig bCfg   = BarrageConfig.GetData(BarrageId);
                var           bullet = ResourceManager.Load <GameObject>(PathManager.GetBulletPath("Bullet_" + BulletId));
                switch (TargetPosType)
                {
                case TargetPos.敌人位置:
                    parent = TargetTrans;
                    break;

                case TargetPos.固定位置:
                    break;

                case TargetPos.敌人X轴位置:
                    _pos.x = TargetTrans.position.x;
                    _pos.y = Offest.y;
                    break;
                }
                if (m_Owner == GameManager.Player)
                {
                    _emitterManager = ShootManager.Instance.Shoot(parent, _pos, bullet, m_Owner.GetAttribute(E_Attribute.Atk.ToString()).GetTotalValue(), bCfg, GameConfig.Instance.EnemyLayer);
                }
                else
                {
                    _emitterManager = ShootManager.Instance.Shoot(parent, _pos, bullet, m_Owner.GetAttribute(E_Attribute.Atk.ToString()).GetTotalValue(), bCfg, GameConfig.Instance.PlayerLayer);
                }
                if (TargetPosType == TargetPos.敌人X轴位置)
                {
                    _emitterManager.OnUpdate += () =>
                    {
                        _pos.x = TargetTrans.position.x;
                        _pos.y = Offest.y;
                        _emitterManager.transform.position = _pos;
                    };
                }
                _completed = true;
            }
        }
        //if (!_enter)
        //{
        //    _enter = true;
        //Transform parent = null;
        //BarrageConfig bCfg = BarrageConfig.GetData(BarrageId);
        //var bullet = ResourceManager.Load<GameObject>(PathManager.GetBulletPath("Bullet_" + BulletId));
        //TimerManager.Instance.AddListener(Delay, () =>
        //{
        //    switch (TargetPosType)
        //    {
        //        case TargetPos.敌人位置:
        //            parent = TargetTrans;
        //            break;
        //        case TargetPos.固定位置:
        //            break;
        //        case TargetPos.敌人X轴位置:
        //            _pos.x = TargetTrans.position.x;
        //            _pos.y = Offest.y;
        //            break;
        //    }
        //    if (m_Owner==GameManager.Player)
        //    {
        //        _emitterManager = ShootManager.Instance.Shoot(parent, _pos, bullet, m_Owner.GetAttribute(E_Attribute.Atk.ToString()).GetTotalValue(), bCfg, GameConfig.Instance.EnemyLayer);
        //    }
        //    else
        //    {
        //        _emitterManager = ShootManager.Instance.Shoot(parent, _pos, bullet, m_Owner.GetAttribute(E_Attribute.Atk.ToString()).GetTotalValue(), bCfg, GameConfig.Instance.PlayerLayer);
        //    }
        //    if (TargetPosType==TargetPos.敌人X轴位置)
        //    {
        //        _emitterManager.OnUpdate += () =>
        //        {
        //            _pos.x = TargetTrans.position.x;
        //            _pos.y = Offest.y;
        //            _emitterManager.transform.position = _pos;
        //        };
        //    }
        //});
        //    }
    }
Esempio n. 6
0
    public EmitterManager Shoot(Transform parent, GameObject owner, GameObject bullet, float bulletDamage, BarrageConfig barrageCfg, int targetLayer)
    {
        Vector3 dir = Vector3.zero;

        switch (barrageCfg.Direction)
        {
        case E_Direction.Up:
            dir = Vector3.up;
            break;

        case E_Direction.Down:
            dir = Vector3.down;
            break;

        case E_Direction.Left:
            if (owner.transform.localScale.x > 0)
            {
                dir = Vector3.left;
            }
            else
            {
                dir = Vector3.right;
            }
            break;

        case E_Direction.Right:
            if (owner.transform.localScale.x > 0)
            {
                dir = Vector3.right;
            }
            else
            {
                dir = Vector3.left;
            }
            break;
        }
        var emitter = CreateEmitterManager(PoolType.EmitterManager, parent, owner.transform.position);

        emitter.Init(bullet, owner.transform.localScale.x > 0, dir, bulletDamage, barrageCfg, targetLayer);
        emitter.Enable();
        return(emitter);
    }