private void Remove(Candy candy) { AddEffect(candy.transform.position); audioSource.PlayOneShot(explodeClip); //消除糖果发出的爆炸声音 candy.Dispose(); //释放内存 //更新界面上的图像,使当前这一列的糖果在消除调一个之后能往下移动 //但是糖果行列集合里面是没有改的 int cIndex = candy.cIndex;//临时记录的列索引 for (int rIndex = candy.rIndex + 1; rIndex < rowNum; rIndex++) { Candy candy2 = GetCandy(rIndex, cIndex); //获取传进来的糖果上面的一些糖果 candy2.rIndex--; //重新设置这个糖果的行索引 candy2.TweenToPosition(); //糖果的移动动画 SetCandy(rIndex - 1, cIndex, candy2); //这样就把糖果行列集合里的数据都修改了 } //补全糖果向下移动后的空位 Candy newCandy = AddCandy(rowNum - 1, cIndex); //在当前行的最大行索引的位置随机生成一个糖果 newCandy.rIndex = rowNum; //重新设置行索引为行数这样糖果就在蓝色背景的上面了 newCandy.UpdatePosition(); //只是设置了行索引还不行,还得更新位置这样就会在界面上显示 newCandy.rIndex--; //再减1就把它的行索引设置为正确的了 newCandy.TweenToPosition(); //最后加上糖果的移动动画就会出现一种糖果从上往下掉下来的效果 SetCandy(rowNum - 1, cIndex, newCandy); //然后设置行列集合里的糖果的数据,保持一致这样下次消除糖果就不会出错了 }
private void Remove(Candy c) { AddEffect(c.transform.position); audio.PlayOneShot(explodeClip); c.Dispose(); //move up candy down int columnIndex = c.columnIndex; for (int rowIndex = c.rowIndex + 1; rowIndex < rowNum; rowIndex++) { Candy c2 = GetCandy(rowIndex, columnIndex); c2.rowIndex--; //c2.UpdatePosition(); c2.TweenToPosition(); SetCandy(rowIndex - 1, columnIndex, c2); } //add new candy up Candy newC = AddCandy(rowNum - 1, columnIndex); newC.rowIndex = rowNum; newC.UpdatePosition(); newC.rowIndex--; newC.TweenToPosition(); SetCandy(rowNum - 1, columnIndex, newC); }
private void Remove(Candy candy) { audio.PlayOneShot(removeMatch); AddEffect(candy.transform.position); candy.Dispose(); for (int rowIndex = candy.rowIndex + 1; rowIndex < rowNum; rowIndex++) { Candy candyToMove = GetCandy(rowIndex, candy.columIndex); candyToMove.rowIndex--; candyToMove.TweenToPosition(); SetCandy(rowIndex - 1, candy.columIndex, candyToMove); } SetCandy(rowNum - 1, candy.columIndex, AddCandy(rowNum - 1, candy.columIndex)); }
//刪除 private void Remove(Candy c) { AddEffect(c.transform.position); GetComponent <AudioSource>().PlayOneShot(explodeClip); c.Dispose(); int colIndex = c.ColunmIndex; for (int rowIndex = c.RowIndex + 1; rowIndex < rowNum; rowIndex++) { Candy c2 = GetCandy(colIndex, rowIndex); c2.RowIndex--; c2.TweenToPosition(); SetCandy(colIndex, rowIndex - 1, c2); } //增加新的 candy 至 此行上方 Candy newCandy = AddCandy(colIndex, rowNum - 1); newCandy.RowIndex = rowNum; newCandy.UpdatePosition(); newCandy.RowIndex--; newCandy.TweenToPosition(); SetCandy(colIndex, rowNum - 1, newCandy); }
//移除Candy private void Remove(Candy c) { //remove candy c.Dispose(); //candy move down int columnIndex = c.columnIndex; for (int rowIndex = c.rowIndex + 1; rowIndex < rowNum; rowIndex++) { Candy c2 = GetCandy(rowIndex, columnIndex); c2.rowIndex--; c2.TweenPosition(followSpeed); SetCandy(rowIndex - 1, columnIndex, c2); } //Add new candy Candy newCandy = AddCandy(rowNum, columnIndex); newCandy.UpdatePosition(); newCandy.rowIndex--; newCandy.TweenPosition(followSpeed); SetCandy(rowNum - 1, columnIndex, newCandy); }