//调用销毁方法删除糖果 private void RemoveCandy(Candy c) { AddEffect(c.transform.position); //播放爆炸音效 GetComponent <AudioSource>().PlayOneShot(explosionClip); //移除自己 c.DisposeCandy(); //得到被移除糖果上面的糖果 int columnIndex = c.columnIndex; for (int rowIndex = c.rowIndex + 1; rowIndex < rowNumber; rowIndex++) { Candy c1 = GetCandy(rowIndex, columnIndex); //往下移一位 c1.rowIndex--; //c1.UpdatePosition(); c1.ITweenToPosition(); //保存其位置 SetCandyPosition(rowIndex - 1, columnIndex, c1); } //在最上端生成一个新的糖果 Candy newCandy = AddCandy(rowNumber - 1, columnIndex); newCandy.rowIndex = rowNumber; newCandy.UpdatePosition(); newCandy.rowIndex--; newCandy.ITweenToPosition(); SetCandyPosition(rowNumber - 1, columnIndex, newCandy); }
public void ExchangeCandy(Candy c1, Candy c2) { //播放交换音效 GetComponent <AudioSource>().PlayOneShot(SwapClip); SetCandyPosition(c1.rowIndex, c1.columnIndex, c2); SetCandyPosition(c2.rowIndex, c2.columnIndex, c1); //交换两个糖果的位置 int rowIndex = c1.rowIndex; c1.rowIndex = c2.rowIndex; c2.rowIndex = rowIndex; int columnIndex = c1.columnIndex; c1.columnIndex = c2.columnIndex; c2.columnIndex = columnIndex; //c1.UpdatePosition(); //c2.UpdatePosition(); //实现动画效果 c1.ITweenToPosition(); c2.ITweenToPosition(); }