Пример #1
0
    private static void CreateNewBullet(int id, Transform master, int layer,BulletDeploy deploy, CreatedNotify notify)
    {
        GameSystem.CoroutineStart(TextureUtility.LoadResourceById(deploy.resourceId, spriteList =>
        {
            int spriteIdx = deploy.spriteIdx;
            if(deploy.spriteIdx > spriteList.Count)
            {
                spriteIdx = 0;
            }
            var sprite = spriteList[spriteIdx];
            Holder holder;
            if (!CachePool.TryGetValue(id, out holder))
            {
                holder = new Holder
                {
                    Deploy = deploy,
                    Resource = sprite,
                    SpriteList = spriteList,
                    Queue = new Queue<Bullet>()
                };
                CachePool.Add(id, holder);
            }

            CreateBulletDirect(spriteList, sprite, deploy, master, layer, bullet =>
            {
                notify(bullet);
            });
        }));
    }
Пример #2
0
    //玩家死亡处理
    private static void OnPlayerDead(object o)
    {
        //生命数-1
        Data.LeftLifeCount--;
        MainPlayer = null;

        if (Data.LeftLifeCount > 0)
        {
            //1秒后复活
            GameSystem.CoroutineStart(PlayerReborn());
        }
        else
        {
            //无剩余生命数量,弹出结算
            DOVirtual.DelayedCall(1f, () => { UiManager.Show <UIDeadView>(); });
        }
    }
Пример #3
0
    private static void CreateNewEffect(int id, int sortingOrder, TextureEffectDeploy deploy, CreatedNotify notify)
    {
        GameSystem.CoroutineStart(TextureUtility.LoadResourceById(deploy.resourceId, spriteList =>
        {
            Holder holder;
            if (!CachePool.TryGetValue(id, out holder))
            {
                holder = new Holder
                {
                    Deploy   = deploy,
                    Resource = spriteList,
                    Queue    = new Queue <TextureEffect>()
                };
                CachePool.Add(id, holder);
            }

            CreateEffectDirect(spriteList, sortingOrder, deploy, effect =>
            {
                notify(effect);
            });
        }));
    }
Пример #4
0
 public static void Create(Vector3 pos, float delay)
 {
     GameSystem.CoroutineStart(DoCreate(pos, delay));
 }
Пример #5
0
 public virtual void Init(Enemy enemy)
 {
     Master = enemy;
     GameSystem.CoroutineStart(SetCanShoot());
 }
Пример #6
0
 //从第一关开始游戏
 public static void StartGame()
 {
     GameSystem.CoroutineStart(EnterMission());
 }
Пример #7
0
 //续关
 public static void Retry()
 {
     //1秒后复活
     GameSystem.CoroutineStart(PlayerReborn(0.2f));
     Data.LeftLifeCount = Data.DefaultLifeCount;
 }