Exemplo n.º 1
0
    //
    void Wild_AStar_Setting()
    {
        Wild_AStar_Reset();

        // 자기 위치 셋팅
        {
            int temp = m_c_manager.Wild_FindMyTileNumber(this);
            m_AStar_a_data[temp].m_condition = Wild_AStar_CONDITION.OWN;
            m_AStar_a_data[temp].m_distance  = 0;
            m_AStar_l_settingTemp.Add(temp);
        }

        // 산출
        while (m_AStar_l_settingTemp.Count > 0)
        {
            int       num      = m_AStar_l_settingTemp[0];
            Wild_Tile tile     = m_c_manager.Wild_GetTile(num);
            int       x        = tile.Wild_GetX();
            int       y        = tile.Wild_GetX();
            int       distance = m_AStar_a_data[num].m_distance;
            switch (y % 2)
            {
            case 0: Wild_AStar_Setting1(x, y, -1, distance);      break;

            case 1: Wild_AStar_Setting1(x, y, 0, distance);      break;
            }

            m_AStar_l_settingTemp.RemoveAt(0);
        }
    }