Exemplo n.º 1
0
    //调用销毁方法删除糖果
    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);
    }
Exemplo n.º 2
0
    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();
    }