Esempio n. 1
0
    IEnumerator _Coro_Process()
    {
        //散花出鱼
        int flowEmitNum    = FlowerEmitDatas.Length;
        int curflowEmitNum = 0;

        float baseRotateAngle = 90F;

        float depth = 0F;

        while (curflowEmitNum < flowEmitNum)
        {
            FlowerEmitData emitData = FlowerEmitDatas[curflowEmitNum];

            //float emitElapse = 0F;
            float angleLineDelta = 360F / emitData.NumLine;
            //一群
            //while (emitElapse < emitData.EmitUseTime)
            {
                //6方向一起出
                for (int i = 0; i != emitData.NumLine; ++i)
                {
                    Fish f = Instantiate(emitData.PrefabFish) as Fish;
                    f.ClearAI();
                    f.transform.parent = transform;

                    f.transform.localRotation = Quaternion.AngleAxis(baseRotateAngle + angleLineDelta * i /*+ Random.Range(-15F, 15F)*/, Vector3.forward);
                    f.transform.localPosition = new Vector3(0F, 0F, depth) + f.transform.up * OffsetYInitPos;
                    depth += 0.001F;

                    f.swimmer.Speed = emitData.SwimSpd;
                    f.swimmer.Go();
                }

                //emitElapse += emitData.EmitInterval;
                //yield return new WaitForSeconds(emitData.EmitInterval);
                yield return(new WaitForSeconds(emitData.EmitCooldown));
            }

            baseRotateAngle += 45F;
            ++curflowEmitNum;
            yield return(new WaitForSeconds(1F));
        }


        //等待清鱼,[过期]改用时间作限制
        while (GameMain.Singleton.NumFishAlive != 0)
        {
            yield return(0);
        }
        EndPrelude();
    }
Esempio n. 2
0
        IEnumerator _Coro_Process()
        {
            tk2dSpriteAnimation s;

            //云母出现
            AniSpr_YunMu.AnimationEventTriggered += Handle_YunMuAnimating;

            //出蝴蝶鱼 米字 方向45度一格
            int hudieNum       = 3;
            int hudieInstedNum = 0;

            int[] rndArray = new int[] { 0, 1, 2, 3, 4, 5, 6, 7 };
            System.Array.Sort(rndArray, (a, b) => { return(Random.Range(0, 3) - 1); });

            while (hudieInstedNum < hudieNum)
            {
                yield return(new WaitForSeconds(1F));

                Fish fishHuDie = Instantiate(Prefab_FirstFish) as Fish;
                fishHuDie.ClearAi();
                fishHuDie.transform.parent        = transform;
                fishHuDie.transform.localPosition = Vector3.zero;

                fishHuDie.transform.rotation = Quaternion.AngleAxis(45F * rndArray[hudieInstedNum], Vector3.forward);


                //特殊版本最后一条蝴蝶方向偏移
                if (hudieInstedNum == hudieNum - 1)
                {
                    fishHuDie.transform.rotation *= Quaternion.AngleAxis(-15F, Vector3.forward);
                }


                fishHuDie.swimmer.Go();
                fishHuDie.swimmer.Speed = SpeedFirstFish;
                ++hudieInstedNum;
            }



            //云母fadeOut
            yield return(new WaitForSeconds(1F));

            StartCoroutine(_Coro_YunMuAlphaDown());


            //散花出鱼
            int flowEmitNum    = FlowerEmitDatas.Length;
            int curflowEmitNum = 0;
            //rndArray = new int[FlowerEmitDatas.Length];
            //for(int i = 0; i != rndArray.Length; ++i)
            //    rndArray[i] = i;
            //System.Array.Sort(rndArray,(a,b)=>{return Random.Range(0,3)-1;});
            float baseRotateAngle = 90F;

            float depth = 0F;

            while (curflowEmitNum < flowEmitNum)
            {
                FlowerEmitData emitData = FlowerEmitDatas[curflowEmitNum];

                float emitElapse = 0F;
                //一群
                while (emitElapse < emitData.EmitUseTime)
                {
                    //6方向一起出
                    for (int i = 0; i != 6; ++i)
                    {
                        Fish f = Instantiate(emitData.PrefabFish) as Fish;
                        f.ClearAi();
                        f.transform.parent = transform;

                        f.transform.localRotation = Quaternion.AngleAxis(baseRotateAngle + 60F * i + Random.Range(-15F, 15F), Vector3.forward);
                        f.transform.localPosition = new Vector3(0F, 0F, depth) + f.transform.up * 0.02F;
                        depth += 0.001F;

                        f.swimmer.Speed = emitData.SwimSpd;
                        f.swimmer.Go();
                    }

                    emitElapse += emitData.EmitInterval;
                    yield return(new WaitForSeconds(emitData.EmitInterval));
                }

                baseRotateAngle += 45F;
                ++curflowEmitNum;
                yield return(new WaitForSeconds(1F));
            }


            //等待清鱼,[过期]改用时间作限制
            while (GameMain.Singleton.NumFishAlive != 0)
            {
                yield return(0);
            }
            EndPrelude();
        }