Example #1
0
    void InitWorldUnitConfig ()
    {
        // level 0
        WorldUnitVo level0Vo = new WorldUnitVo ();
        level0Vo.level = 0;
        level0Vo.unit_count_width = 1;
        level0Vo.unit_count_height = 1;


        // level 1
        WorldUnitVo level1Vo = new WorldUnitVo ();
        level1Vo.level = 1;
        level1Vo.unit_count_width = 3;
        level1Vo.unit_count_height = 3;

        // level 2
        WorldUnitVo level2Vo = new WorldUnitVo ();
        level2Vo.level = 2;
        level2Vo.unit_count_width = 15;
        level2Vo.unit_count_height = 15;

        // level3
        WorldUnitVo level3Vo = new WorldUnitVo ();
        level3Vo.level = 3;
        level3Vo.unit_count_width = 30;
        level3Vo.unit_count_height = 30;

        worldUnitConfig.Add (level0Vo.level, level0Vo);
        worldUnitConfig.Add (level1Vo.level, level1Vo);
        worldUnitConfig.Add (level2Vo.level, level2Vo);
        worldUnitConfig.Add (level3Vo.level, level3Vo);
    }
Example #2
0
        /// <summary>
        /// 创建的时候,父区块知道是否要创建子区块s
        /// </summary>
        public void Create()
        {
            if (unitLevel == 0)
            {
                RenderUnit(false);
            }
            else
            {
                // 获得子区块的基础数据
                WorldUnitVo childUnitVo = WorldManager.GetInstance().GetChildWorldUnitVoByParentLevel(this.unitLevel);

                // 计算横向纵向各有多少个子区块
                int horChildUnitCount = unit_width_count / childUnitVo.unit_count_width;
                int verChildUnitCount = unit_height_count / childUnitVo.unit_count_height;

                float childUnitWidth  = childUnitVo.unit_count_width * originWorldUnitSize;
                float childUnitHeight = childUnitVo.unit_count_height * originWorldUnitSize;

                float startChildPos_x = realPos_x - (unit_width / 2) + childUnitWidth / 2;
                float startChildPos_y = realPos_y + (unit_height / 2) - childUnitHeight / 2;


                // 一行一行地去创建子区块
                for (int verIndex = 0; verIndex < verChildUnitCount; ++verIndex)
                {
                    for (int horIndex = 0; horIndex < horChildUnitCount; ++horIndex)
                    {
                        WorldUnit childUnit = new WorldUnit();
                        childUnit.unitLevel         = childUnitVo.level;
                        childUnit.unit_width_count  = childUnitVo.unit_count_width;
                        childUnit.unit_height_count = childUnitVo.unit_count_height;
                        childUnit.realPos_x         = startChildPos_x + horIndex * childUnitWidth;
                        childUnit.realPos_y         = startChildPos_y - verIndex * childUnitHeight;
                        unExplorUnits.Add(childUnit);
                        childWorldUnits.Add(childUnit);
                    }
                }

                // 调用子区块的Create方法

                for (int unitIndex = 0; unitIndex < childWorldUnits.Count; ++unitIndex)
                {
                    childWorldUnits [unitIndex].Create();
                }
            }
        }
Example #3
0
    void InitWorldUnitConfig()
    {
        // level 0
        WorldUnitVo level0Vo = new WorldUnitVo();

        level0Vo.level             = 0;
        level0Vo.unit_count_width  = 1;
        level0Vo.unit_count_height = 1;


        // level 1
        WorldUnitVo level1Vo = new WorldUnitVo();

        level1Vo.level             = 1;
        level1Vo.unit_count_width  = 3;
        level1Vo.unit_count_height = 3;

        // level 2
        WorldUnitVo level2Vo = new WorldUnitVo();

        level2Vo.level             = 2;
        level2Vo.unit_count_width  = 15;
        level2Vo.unit_count_height = 15;

        // level3
        WorldUnitVo level3Vo = new WorldUnitVo();

        level3Vo.level             = 3;
        level3Vo.unit_count_width  = 30;
        level3Vo.unit_count_height = 30;

        worldUnitConfig.Add(level0Vo.level, level0Vo);
        worldUnitConfig.Add(level1Vo.level, level1Vo);
        worldUnitConfig.Add(level2Vo.level, level2Vo);
        worldUnitConfig.Add(level3Vo.level, level3Vo);
    }