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); }
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); }