Beispiel #1
0
    public void DanmuClicked(DanmuMode2 danmu)
    {
        if (danmu.isBad)
        {
            if (danmu.isBig)
            {
                GainEnegy(1);
                GetScore(3);
                mUICtrl.ShowDamageAmountEffect(danmu.transform.position, 3);
            }
            else
            {
                GainEnegy(2);
                GetScore(5);
                mUICtrl.ShowDamageAmountEffect(danmu.transform.position, 3);
            }
        }
        else
        {
            GetScore(-1);
            mUICtrl.ShowDamageAmountEffect(danmu.transform.position, -1);
        }

        danmu.OnDestroy();
        state.Danmus.Remove(danmu);
    }
Beispiel #2
0
 private void AutoDisappear(DanmuMode2 danmu)
 {
     if (danmu.isBad)
     {
         Damaged(3);
     }
     RecycleDanmu(danmu);
     state.Danmus.Remove(danmu);
 }
Beispiel #3
0
    public void GenDanmu()
    {
        //DanmuGroup dd = null;
        //if (state.danmuGroups.Count > 0)
        //{
        //    int[] preSum = new int[state.danmuGroups.Count];
        //    preSum[0] = state.danmuGroups[0].TotalNum;
        //    for (int i = 1; i < state.danmuGroups.Count; i++)
        //    {
        //        preSum[i] = preSum[i - 1] + state.danmuGroups[i].TotalNum;
        //    }
        //    int randInt = Random.Range(0, preSum[state.danmuGroups.Count - 1]);
        //    int choose = 0;
        //    for (int i = 0; i < preSum.Length; i++)
        //    {
        //        if (randInt < preSum[i])
        //        {
        //            choose = i;
        //            dd = state.danmuGroups[i];
        //            break;
        //        }
        //    }
        //    state.danmuGroups[choose].TotalNum -= 1;
        //    if (state.danmuGroups[choose].TotalNum <= 0)
        //    {
        //        state.danmuGroups.RemoveAt(choose);
        //    }
        //}


        bool bad = true;

        if (state.BadNum > 0)
        {
            bad           = true;
            state.BadNum -= 1;
        }
        else
        {
            if (Random.value < 0.5)
            {
                bad = false;
            }
        }

        DanmuMode2 danmu = mUICtrl.GenDanmu(bad);

        bigOneCount++;
        if (bigOneCount > bigOneNext)
        {
            danmu.SetAsSpecial();
            bigOneCount = 0;
            bigOneNext  = Random.Range(5, 8);
        }
        state.Danmus.Add(danmu);
    }
Beispiel #4
0
    public void DestroyBadRandomly(int num)
    {
        List <DanmuMode2> toClean = randomPickBadDanmu(num);

        for (int i = 0; i < toClean.Count; i++)
        {
            DanmuMode2 danmu = toClean[i];
            danmu.OnDestroy();
            state.Danmus.Remove(danmu);
        }
    }
Beispiel #5
0
    public DanmuMode2 GenDanmu(bool isBad)
    {
        List <int> DanmuSlots = new List <int>();


        for (int i = 2; i < numOfGridVertical - 2; i++)
        {
            if (Time.time - preDanmuTime[i] > MinDanmuInterval)
            {
                DanmuSlots.Add(i);
            }
        }
        int gridY;

        if (DanmuSlots.Count == 0)
        {
            gridY = Random.Range(2, numOfGridVertical - 2);
        }
        else
        {
            gridY = DanmuSlots[Random.Range(0, DanmuSlots.Count)];
        }

        preDanmuGrid = gridY;

        float posY = gridY * 1.0f / numOfGridVertical * height;

        preDanmuTime[gridY] = Time.time;

        GameObject danmuGo = mResLoader.Instantiate("ZhiboMode2/Danmu2");

        DanmuMode2 danmu = danmuGo.GetComponent <DanmuMode2>();

        if (isBad)
        {
            danmu.init(gameMode.GetHeiDanmuContent(), isBad, gameMode);
        }
        else
        {
            danmu.init(gameMode.GetDanmuContent(), isBad, gameMode);
        }
        danmuGo.transform.SetParent(view.DanmuField, false);
        danmu.rect.anchoredPosition = new Vector3(width + 30, -posY, 0);

        return(danmu);
    }
Beispiel #6
0
 public void RecycleDanmu(DanmuMode2 danmu)
 {
     mResLoader.ReleaseGO("ZhiboMode2/Danmu2", danmu.gameObject);
 }