public void SaveLevel(GameGrid grid) { ClearLevel(); var cells = grid.SelectAll(); for (var i = 0; i < cells.GetLength(0); i++) { for (var j = 0; j < cells.GetLength(1); j++) { var cell = cells[i, j]; if (cell.GetName().Contains("Block")) { BlockPositions.Add(new PointData(i, j)); } else if (cell.GetName().Contains("Treasure")) { TreasurePositions.Add(new PointData(i, j)); } else if (cell.GetName().Contains("Stone")) { StonePositions.Add(new PointData(i, j)); } else if (cell.GetName().Contains("Player")) { PlayerPosition = new PointData(i, j); } } } }
public void Reset() { BlockPositions.Clear(); addedBlocks.Clear(); BlockPositions.Add(new Point(2, 0)); BlockPositions.Add(new Point(1, 0)); BlockPositions.Add(new Point(0, 0)); Direction = direction.Right; }
private void MoveBlocks() { Point tail = Tail; bool newBlock = false; //position of new block equal tail position if (addedBlocks.Count > 0 && Tail == addedBlocks.Peek()) { newBlock = true; } //каждая ячейка перемещается на позицию предшествующей ей for (int i = Length - 1; i != 0; i--) { BlockPositions[i] = BlockPositions[i - 1]; } if (newBlock) { BlockPositions.Add(addedBlocks.Dequeue()); OnBlockAddFinish(Tail); } }
public void ClearLevel() { BlockPositions.Clear(); TreasurePositions.Clear(); StonePositions.Clear(); }