/// <summary> /// Generates a new board. /// </summary> public void GenerateBoard() { // Base case: no tile prefab. if (tilePrefab == null) { Debug.LogError("Missing reference to tile prefab."); return; } // Delete the old board object. if (board != null) { GameObject.DestroyImmediate(board.gameObject); } // Construct a board definition. BoardDefinition generatedBoardDefinition = new BoardDefinition(20, 20); // Construct the board GameObject. GameObject boardObject = new GameObject("Generated Board"); boardObject.transform.SetParent(transform); board = boardObject.AddComponent <BoardController> (); // Load the tiles onto the board. board.LoadBoard(generatedBoardDefinition, tilePrefab); }
/// <summary> /// Loads the board given the definition and the tile prefab. /// </summary> /// <param name="definition">Definition.</param> public void LoadBoard(BoardDefinition definition, TileController tilePrefab) { // Cache the board dimensions. this.Width = definition.Width; this.Height = definition.Height; // Instantiate new tiles layer. GameObject tilesLayerObject = new GameObject("Tiles"); tilesLayerObject.transform.SetParent(transform); // Calculate tile dimensions. BoxCollider2D bounds = tilePrefab.transform.FindChild("Sprite").GetComponent <BoxCollider2D> (); float tileWidth = bounds.size.x; float tileHeight = bounds.size.y; // Initialize the tiles on the board. for (int x = 0; x < this.Width; x++) { for (int y = 0; y < this.Width; y++) { // Instantiate tile GameObject. TileController tile = Instantiate(tilePrefab) as TileController; tile.transform.SetParent(tilesLayerObject.transform); // Initialize and position the tile. tile.Initialize(definition [x, y], tileWidth, tileHeight); } } }
/// <summary> /// Loads the board given the definition and the tile prefab. /// </summary> /// <param name="definition">Definition.</param> public void LoadBoard(BoardDefinition definition, TileController tilePrefab) { // Cache the board dimensions. this.Width = definition.Width; this.Height = definition.Height; // Instantiate new tiles layer. GameObject tilesLayerObject = new GameObject ("Tiles"); tilesLayerObject.transform.SetParent (transform); // Calculate tile dimensions. BoxCollider2D bounds = tilePrefab.transform.FindChild ("Sprite").GetComponent<BoxCollider2D> (); float tileWidth = bounds.size.x; float tileHeight = bounds.size.y; // Initialize the tiles on the board. for (int x = 0; x < this.Width; x++) { for (int y = 0; y < this.Width; y++) { // Instantiate tile GameObject. TileController tile = Instantiate (tilePrefab) as TileController; tile.transform.SetParent (tilesLayerObject.transform); // Initialize and position the tile. tile.Initialize (definition [x, y], tileWidth, tileHeight); } } }
internal void Clear() { var board = new BoardDefinition() { BoardSize = Board.BoardSize, EndPointList = new List <Endpoints>() }; InitializeBoard(board); }
private static HidReport PrepareReport(int addr, byte[] data, BoardDefinition BoardDef) { var report = new HidReport(BoardDef.BlockSize + BoardDef.DataOffset + 1); report.ReportId = 0; // Copy address bytes into report. Use function stored in board definition BoardDef.AddrCopy(report.Data, BitConverter.GetBytes(addr)); // Copy datablock into report data.CopyTo(report.Data, BoardDef.DataOffset); return(report); }
public NewMatchState(IAnarkanoidGame arkanoidGame, IKeysConfiguration keysConfiguration) : base(arkanoidGame, keysConfiguration) { AnarkanoidGame.ComponentManager.Clear(); AnarkanoidGame.CurrentLives = Configuration.InitialLives; _levelText = new ShowText(Configuration, new Size(Configuration.ScreenSize.Width, Configuration.ScreenSize.Height)) { Position = new Microsoft.Xna.Framework.Vector2(150, 120) }; AnarkanoidGame.ComponentManager.AddText(_levelText, string.Format(LEVEL_TEXT, AnarkanoidGame.CurrentStage + 1)); _text = new ShowText(Configuration, new Size(Configuration.ScreenSize.Width, Configuration.ScreenSize.Height)) { Position = new Microsoft.Xna.Framework.Vector2(150, 150) }; AnarkanoidGame.ComponentManager.AddText(_text, string.Format(TEXT_FORMAT, 3 - _totalTicks)); Components.SpaceShip.Reset(); AnarkanoidGame.ComponentManager.AddSpaceShip(AnarkanoidGame.ComponentManager.SpaceShip); var ball = AnarkanoidGame.ComponentManager.BallRepository.GetBasicBall(); ball.Reset(); AnarkanoidGame.ComponentManager.AddBall(ball); var boardFileName = Environment.CurrentDirectory + "\\Boards\\" + AnarkanoidGame.ComponentManager.Configuration.Boards[AnarkanoidGame.CurrentStage] + ".stage"; var boardDefinition = new BoardDefinition(boardFileName); AnarkanoidGame.ComponentManager.LoadBoard(boardDefinition); _timer = new Timer(1000); _timer.Elapsed += _timer_Elapsed; _timer.Start(); _returnState = this; CommandPerKey.Add(Keys.Left, CommandsFactory.GetMoveSpaceShipToLeftCommand()); CommandPerKey.Add(Keys.Right, CommandsFactory.GetMoveSpaceShipToRightCommand()); }
internal void InitializeBoard(BoardDefinition boardDefinition) { Board = boardDefinition; Width = Board.BoardSize; Height = Width; Puzzle = Board.EndPointList; Cells = new List <Cell>(); for (int i = 0; i < BoardSize; ++i) { Cells.Add(new Cell(i) { }); } foreach (var endPoint in Puzzle) { Cells[PointToIndex(endPoint.Pt1)].MakeEndpoint(endPoint.FlowColor); Cells[PointToIndex(endPoint.Pt2)].MakeEndpoint(endPoint.FlowColor); } OnPropertyChanged(nameof(Cells)); }
/// <summary> /// Generates a new board. /// </summary> public void GenerateBoard() { // Base case: no tile prefab. if (tilePrefab == null) { Debug.LogError ("Missing reference to tile prefab."); return; } // Delete the old board object. if (board != null) { GameObject.DestroyImmediate (board.gameObject); } // Construct a board definition. BoardDefinition generatedBoardDefinition = new BoardDefinition (20, 20); // Construct the board GameObject. GameObject boardObject = new GameObject ("Generated Board"); boardObject.transform.SetParent (transform); board = boardObject.AddComponent<BoardController> (); // Load the tiles onto the board. board.LoadBoard (generatedBoardDefinition, tilePrefab); }
private BoardDefinition GetGameSetup() { BoardDefinition bd = new BoardDefinition() { BoardSize = 8, EndPointList = new List <Endpoints> { new Endpoints() { FlowColor = Color.Yellow, Pt1 = new Point(4, 0), Pt2 = new Point(7, 1) }, new Endpoints() { FlowColor = Color.Cyan, Pt1 = new Point(1, 1), Pt2 = new Point(2, 5) }, new Endpoints() { FlowColor = Color.Red, Pt1 = new Point(1, 2), Pt2 = new Point(4, 4) }, new Endpoints() { FlowColor = Color.Orange, Pt1 = new Point(7, 3), Pt2 = new Point(4, 5) }, new Endpoints() { FlowColor = Color.Blue, Pt1 = new Point(5, 4), Pt2 = new Point(6, 6) }, new Endpoints() { FlowColor = Color.Green, Pt1 = new Point(1, 6), Pt2 = new Point(5, 6) }, } }; return(bd); }
private static HidReport PrepareReport(int addr, byte[] data, BoardDefinition BoardDef) { var report = new HidReport(BoardDef.BlockSize + BoardDef.DataOffset + 1); report.ReportId = 0; // Copy address bytes into report. Use function stored in board definition BoardDef.AddrCopy(report.Data, BitConverter.GetBytes(addr)); // Copy datablock into report data.CopyTo(report.Data, BoardDef.DataOffset); return report; }