Пример #1
0
        private void OnHitedImp(Vector2 speedV, Transform tsf)
        {
            if (m_InLertPoPos || m_InBeatBackState)
            {
                return;
            }
            BaseBullet bullet = tsf.GetComponent <BaseBullet>();

            if (bullet)
            {
                m_BackStartSpeed = bullet.GetBackStartSpeed();
                m_BackEndSpeed   = bullet.GetBackEndSpeed();
                m_BackTime       = bullet.GetBackTime();
            }
            else
            {
                Monster monster = tsf.GetComponent <Monster>();
                m_BackStartSpeed = monster.GetBackStartSpeed();
                m_BackEndSpeed   = monster.GetBackEndSpeed();
                m_BackTime       = monster.GetBackTime();
            }
            if (m_BackTime > 0)
            {
                m_CurTime         = 0;
                m_SpeedVec2       = speedV;
                m_G               = 2 * m_V0 / (m_BackTime * 0.4f);
                m_InBeatBackState = true;
                m_Player.SetSpeed(Vector2.zero);
            }
            else
            {
                m_Player.EndBackAct();
            }
        }
Пример #2
0
        private void InstanceBullet()
        {
            BaseBullet skillBullet = Global.gApp.gGameCtrl.BulletCache.GetBullet(BulletConfig.Bullet_RobotSkill02);

            skillBullet.transform.localScale = new Vector3(1, 1, 1);
            skillBullet.transform.SetParent(transform, false);
            skillBullet.Init(m_Damage, transform, 0, 0);
        }
Пример #3
0
        private BaseBullet CreateBullet(string name)
        {
            GameObject bulletNode    = Global.gApp.gResMgr.InstantiateObj(BulletConfig.BulletPath[name]);
            BaseBullet bulletNodeCmp = bulletNode.GetComponent <BaseBullet>();

            if (bulletNodeCmp == null)
            {
                bulletNodeCmp = bulletNode.GetComponentInChildren <BaseBullet>();
            }
            bulletNodeCmp.SetName(name);
            return(bulletNodeCmp);
        }
Пример #4
0
        public void Recycle(string name, BaseBullet bulletNode)
        {
            List <BaseBullet> bulletNodes;

            if (!m_BulletNodeCache.TryGetValue(name, out bulletNodes))
            {
                bulletNodes             = new List <BaseBullet>();
                m_BulletNodeCache[name] = bulletNodes;
            }
            bulletNode.transform.SetParent(Global.gApp.gBulletNode.transform, true);
            bulletNode.transform.position = new Vector3(1000, 0, 0);
            bulletNodes.Add(bulletNode);
        }
Пример #5
0
        private void OnHitedImp(Vector2 speedV, Transform bulletTsf)
        {
            BaseBullet bullet = bulletTsf.GetComponent <BaseBullet>();

            m_SpeedVec2      = speedV;
            m_CurTime        = 0;
            m_BackStartSpeed = bullet.GetBackStartSpeed();
            m_BackEndSpeed   = bullet.GetBackEndSpeed();
            //if(m_BackStartSpeed == 0 && m_BackEndSpeed == 0)
            //{
            //    m_Monster.SetAbsAnimSpeed(0);
            //    m_Monster.SetStaticByRigidProp();
            //}
            m_BackTime = Mathf.Max(bullet.GetBackTime(), 0.01f);
            m_StartAct = true;
        }
Пример #6
0
        public void CacheBullet(string name, int count, int maxCount = -1)
        {
            if (maxCount > 0)
            {
                List <BaseBullet> bulletNodes;
                if (m_BulletNodeCache.TryGetValue(name, out bulletNodes) && bulletNodes.Count > maxCount)
                {
                    return;
                }
            }
            Transform bulletTsf = Global.gApp.gBulletNode.transform;

            for (int i = 0; i < count; i++)
            {
                BaseBullet bulletNode = CreateBullet(name);
                bulletNode.InitForCache();
                Recycle(name, bulletNode);
                bulletNode.transform.SetParent(bulletTsf);
            }
        }