//public Ghost[] ghostsList; public GameField() { pacMan = new PacMan(); GGhost = new GGhost("G"); BGhost = new BGhost(); PGhost = new PGhost(); RGhost = new RGhost(); //ghostsList = new Ghost[] //{ // new Ghost("G"), // new Ghost("R"), // new Ghost("B"), // new Ghost("P") //}; }
public async Task MoveGhost(GGhost ghost) { ghost.StartPosGhost(_game.Rows, _game.Colums, _game.Map); _game.GhostColor = ghost.GhostColor; switch (/*ghost.ChageDiraction(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)*/ "left") { case "left": if (ghost.CheckMoveLeft(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)) { ghost.MoveLeft(); if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY) { await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor); //Task mapTask = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY, // ghost.LastDot, ghost.GhostColor); _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor; _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot; } else { _game.Direction = "ghost"; Task pacManTask = MovePacMan(); } } break; case "right": if (ghost.CheckMoveRight(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)) { ghost.MoveRight(); if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY) { await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor); //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY, // ghost.LastDot, ghost.GhostColor); _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor; _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot; } else { _game.Direction = "ghost"; Task pacManTask = MovePacMan(); } } break; case "up": if (ghost.CheckMoveUP(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)) { ghost.MoveUP(); if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY) { await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor); //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY, // ghost.LastDot, ghost.GhostColor); _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor; _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot; } else { _game.Direction = "ghost"; Task pacManTask = MovePacMan(); } } break; case "down": if (ghost.CheckMoveDown(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)) { ghost.MoveDown(); if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY) { await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor); //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY, // ghost.LastDot, ghost.GhostColor); _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor; _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot; } else { _game.Direction = "ghost"; Task pacManTask = MovePacMan(); } } break; } }