// Start is called before the first frame update void Start() { path2D = new int[ROWS, COLS] { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1 }, { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }, { 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; transform.position = new Vector3(blinky_start_col, blinky_start_row, 0.0f); blinky_move_col = blinky_start_col; blinky_move_row = blinky_start_row; blinky_current_row = blinky_start_row; blinky_current_col = blinky_start_col; //temp start destination int dest_row = 0; int dest_col = 0; astar_gen = new AStarAlgorithm(); astar_gen.aStarSearch(blinky_path, path2D, blinky_start_row, blinky_start_col, dest_row, dest_col); }
// Update is called once per frame void Update() { //blinky_new_posX += blinky_speed * Time.deltaTime; //blinky.transform.position = new Vector3(blinky_new_posX, blinky_start_row, 0.0f); if (blinky_path.Count != 0 && !movingUP && !movingDOWN && !movingLEFT && !movingRIGHT) { pair = (Pair <int, int>)blinky_path.Peek(); blinky_path.Pop(); //Debug.Log("Popped"); if (pair.first == blinky_current_row + 1) { //move blinky row + 1 //Debug.Log("Moved UP"); movingUP = true; } else if (pair.first == blinky_current_row - 1) { //move blinky row - 1 //Debug.Log("Moved DOWN"); movingDOWN = true; } else if (pair.second == blinky_current_col + 1) { //move blinky col + 1 //Debug.Log("Moved RIGHT"); movingRIGHT = true; } else if (pair.second == blinky_current_col - 1) { //move blinky col - 1 //Debug.Log("Moved LEFT"); movingLEFT = true; } } if (movingUP) { blinky_move_row += blinky_speed * Time.deltaTime; transform.position = new Vector3(blinky_current_col, blinky_move_row, 0.0f); //Debug.Log(blinky_current_row + " : " + p.first); if (blinky_move_row > pair.first) { transform.position = new Vector3(blinky_current_col, pair.first, 0.0f); blinky_current_row = pair.first; //Debug.Log("ASTAR: ROW: " + blinky_current_row + "\t First: " + pair.first); blinky_move_row = pair.first; movingUP = false; } } else if (movingDOWN) { blinky_move_row -= blinky_speed * Time.deltaTime; transform.position = new Vector3(blinky_current_col, blinky_move_row, 0.0f); //Debug.Log(blinky_current_row + " : " + p.first); if (blinky_move_row < pair.first) { transform.position = new Vector3(blinky_current_col, pair.first, 0.0f); blinky_current_row = pair.first; //Debug.Log("ASTAR: ROW: " + blinky_current_row + "\t First: " + pair.first); blinky_move_row = pair.first; movingDOWN = false; } } else if (movingLEFT) { blinky_move_col -= blinky_speed * Time.deltaTime; transform.position = new Vector3(blinky_move_col, blinky_current_row, 0.0f); //Debug.Log(blinky_current_row + " : " + p.first); if (blinky_move_col < pair.second) { //Debug.Log("MOVING FALSE"); transform.position = new Vector3(pair.second, blinky_current_row, 0.0f); blinky_current_col = pair.second; blinky_move_col = pair.second; movingLEFT = false; } } else if (movingRIGHT) { blinky_move_col += blinky_speed * Time.deltaTime; transform.position = new Vector3(blinky_move_col, blinky_current_row, 0.0f); //Debug.Log(blinky_current_row + " : " + p.first); if (blinky_move_col > pair.second) { //Debug.Log("MOVING FALSE"); transform.position = new Vector3(pair.second, blinky_current_row, 0.0f); blinky_current_col = pair.second; blinky_move_col = pair.second; movingRIGHT = false; } } if (!movingUP && !movingDOWN && !movingRIGHT && !movingLEFT && blinky_path.Count == 0) { //Debug.Log("ASTAR: ROW: " + blinky_current_row + " COL: " + blinky_current_col); astar_gen.aStarSearch(blinky_path, path2D, (int)blinky_current_row, (int)blinky_current_col, (int)pacman.pacman_current_row, (int)pacman.pacman_current_col); } }
// Update is called once per frame void Update() { if (pinky_path.Count != 0 && !movingUP && !movingDOWN && !movingLEFT && !movingRIGHT) { pair = (Pair <int, int>)pinky_path.Peek(); pinky_path.Pop(); if (pair.first == pinky_current_row + 1) { //move pinky row + 1 //Debug.Log("Moved UP"); movingUP = true; } else if (pair.first == pinky_current_row - 1) { //move pinky row - 1 //Debug.Log("Moved DOWN"); movingDOWN = true; } else if (pair.second == pinky_current_col + 1) { //move pinky col + 1 //Debug.Log("Moved RIGHT"); movingRIGHT = true; } else if (pair.second == pinky_current_col - 1) { //move pinky col - 1 //Debug.Log("Moved LEFT"); movingLEFT = true; } } if (movingUP) { pinky_move_row += pinky_speed * Time.deltaTime; transform.position = new Vector3(pinky_current_col, pinky_move_row, 0.0f); if (pinky_move_row > pair.first) { transform.position = new Vector3(pinky_current_col, pair.first, 0.0f); pinky_current_row = pair.first; pinky_move_row = pair.first; movingUP = false; } } else if (movingDOWN) { pinky_move_row -= pinky_speed * Time.deltaTime; transform.position = new Vector3(pinky_current_col, pinky_move_row, 0.0f); if (pinky_move_row < pair.first) { transform.position = new Vector3(pinky_current_col, pair.first, 0.0f); pinky_current_row = pair.first; pinky_move_row = pair.first; movingDOWN = false; } } else if (movingLEFT) { pinky_move_col -= pinky_speed * Time.deltaTime; transform.position = new Vector3(pinky_move_col, pinky_current_row, 0.0f); if (pinky_move_col < pair.second) { transform.position = new Vector3(pair.second, pinky_current_row, 0.0f); pinky_current_col = pair.second; pinky_move_col = pair.second; movingLEFT = false; } } else if (movingRIGHT) { pinky_move_col += pinky_speed * Time.deltaTime; transform.position = new Vector3(pinky_move_col, pinky_current_row, 0.0f); if (pinky_move_col > pair.second) { //Debug.Log("MOVING FALSE"); transform.position = new Vector3(pair.second, pinky_current_row, 0.0f); pinky_current_col = pair.second; pinky_move_col = pair.second; movingRIGHT = false; } } if (!movingUP && !movingDOWN && !movingRIGHT && !movingLEFT && pinky_path.Count == 0) { astar_gen.aStarSearch(pinky_path, path2D, (int)pinky_current_row, (int)pinky_current_col, (int)pacman.pacman_ahead_row, (int)pacman.pacman_ahead_col); } }