示例#1
0
文件: Tetris.cs 项目: fed-xie/foo
    Rock newRock(RockShape s)
    {
        Rock r = new Rock();

        r.shape = new int[s.offset.Count, 2];
        r.icons = new GameObject[s.offset.Count];
        for (int i = 0; i < s.offset.Count; ++i)
        {
            r.shape[i, 0] = s.offset[i].x - s.origin.x;
            r.shape[i, 1] = s.offset[i].y - s.origin.y;
            r.icons[i]    = Instantiate(block_prefab,
                                        field.calcPos(nextRockPos.x + r.shape[i, 0], nextRockPos.y + r.shape[i, 1]),
                                        Quaternion.identity,
                                        this.transform);
            r.icons[i].GetComponent <SpriteRenderer>().color = Color.yellow;
        }
        r.originX = -1;
        r.originY = -1;
        return(r);
    }
示例#2
0
文件: Tetris.cs 项目: fed-xie/foo
    IEnumerable <float> genRock()
    {
        RockShape [] ss = new RockShape[shapes.Length];
        for (int s = 0; s != shapes.Length; ++s)
        {
            int i = Random.Range(0, shapes.Length);
            ss[s] = shapes[i];
        }

        foreach (RockShape s in ss)
        {
            curRock = nextRock;
            moveRockTo(curRock, field_column / 2, field_row - 1);
            foreach (var icon in curRock.icons)
            {
                icon.GetComponent <SpriteRenderer>().color = Color.green;
            }

            nextRock = newRock(s);
            yield return(0.0f);
        }
    }
 public Rock()
 {
     Random innerRockGenerator = new Random();
     symbol = allowedChars[innerRockGenerator.Next(allowedChars.Length)];
     length = innerRockGenerator.Next(1, maxSize+1);
     color = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), Convert.ToString(innerRockGenerator.Next(1, 16))); // selects one of the 16 foregroud colors
     shape = (RockShape)Enum.Parse(typeof(RockShape), Convert.ToString(innerRockGenerator.Next((int)RockShape.Crest + 1))); // selects some shape
     posY = 0;
     posX = innerRockGenerator.Next(0, fieldWidth - length);
 }