Exemplo n.º 1
0
    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);        //然后设置行列集合里的糖果的数据,保持一致这样下次消除糖果就不会出错了
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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));
    }
Exemplo n.º 4
0
    //刪除
    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);
    }
Exemplo n.º 5
0
    //移除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);
    }