/// <summary> /// Задает размер поля (в ячейках) по вертикали и горизонтали. !ВАЖНО: игровое поле создается заново! Все данные о ячейках стираются! /// </summary> /// <param name="rowCount">Число ячеек по вертикали (число рядов)</param> /// <param name="columnCount">Число ячеек по горизонтали (число столбцов)</param> public void setSize(int rowCount, int columnCount) { if (rowCount < 1 || columnCount < 1) throw new ArgumentException("Row and column counts have to be more than zero! size: (rc:"+rowCount.ToString()+" cc:"+columnCount.ToString()+")"); cells = new List<List<GameCell>>(rowCount); //int xCoord = 0, yCoord = 0; this.SuspendLayout(); this.Controls.Clear(); for (int i = 0; i < RowCount; ++i) { //xCoord = 0; List<GameCell> row = new List<GameCell>(columnCount); for (int j = 0; j < ColumnCount; ++j) { Frame framePrototype = new Frame(); framePrototype.FrameId = -1; Slot slotImage = new Slot(); slotImage.SlotName = "image"; slotImage.SlotInheritance = SlotInherit.Override; slotImage.SlotType = SlotType.String; slotImage.SlotDefault = "Images\\unknown.png"; slotImage.SlotId = 0; slotImage.ParentId = framePrototype.FrameId; Slot slotRow = new Slot(); slotRow.SlotName = "Row"; slotRow.SlotType = SlotType.Integer; slotRow.SlotInheritance = SlotInherit.Override; slotRow.SlotId = 1; slotRow.ParentId = framePrototype.FrameId; Slot slotColumn = new Slot(); slotColumn.SlotName = "Column"; slotColumn.SlotType = SlotType.Integer; slotColumn.SlotInheritance = SlotInherit.Override; slotColumn.SlotId = 1; slotColumn.ParentId = framePrototype.FrameId; framePrototype.FrameSlots.Add(slotImage); framePrototype.FrameSlots.Add(slotRow); framePrototype.FrameSlots.Add(slotColumn); FrameExample frameExample = new FrameExample(framePrototype); frameExample.SetValue("image", "Images\\grass.jpg"); frameExample.SetValue("Row", i); frameExample.SetValue("Column", j); GameCell cell = new GameCell(this, i, j, cellSize, frameExample); cell.GameCellClicked += new GameCellClickedEventHandler(cell_GameCellClicked); row.Add(cell); //cell.Location = new Point(xCoord, yCoord); this.Controls.Add(cell); //xCoord += cellSize+cellOffset; } cells.Add(row); //yCoord += cellSize+cellOffset; } this.rowCount = rowCount; this.columnCount = columnCount; this.ResumeLayout(); this.layoutCells(); }
public GameCellClickedEventArgs(GameCell gameCell) { this.GameCell = gameCell; }