Пример #1
0
    // 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);
    }
Пример #2
0
    // 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);
        }
    }
Пример #3
0
    // 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);
        }
    }