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); }
private void AutoDisappear(DanmuMode2 danmu) { if (danmu.isBad) { Damaged(3); } RecycleDanmu(danmu); state.Danmus.Remove(danmu); }
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); }
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); } }
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); }
public void RecycleDanmu(DanmuMode2 danmu) { mResLoader.ReleaseGO("ZhiboMode2/Danmu2", danmu.gameObject); }