Exemplo n.º 1
0
        /// <summary>
        /// 创建场景
        /// </summary>
        /// <param name="scene_type"></param>
        /// <returns></returns>
        public BaseScene CreateScene(uint scene_type)
        {
            BaseScene  new_scene = null;
            eSceneType type      = SceneID.GetSceneTypeByID(scene_type);

            if (type == eSceneType.CITY)
            {//主城场景:同类型只存在一个
                if (m_city_scenes.TryGetValue(scene_type, out new_scene))
                {
                    return(new_scene);
                }
            }
            //创建场景
            switch (type)
            {
            case eSceneType.CITY: new_scene = new CityScene(); break;

            case eSceneType.BATTLE: new_scene = new BaseScene(); break;

            default: Log.Warning("错误的场景类型:" + scene_type); return(null);
            }
            new_scene.Setup(scene_type, ++m_scene_guid);
            m_scenes.Add(new_scene.scene_obj_idx, new_scene);

            if (type == eSceneType.CITY)
            {
                m_city_scenes.Add(scene_type, new_scene);
            }
            else if (type == eSceneType.BATTLE)
            {
            }

            return(new_scene);
        }
Exemplo n.º 2
0
        public BaseScene CreateScene(ushort scene_type)
        {
            if (m_DicScenes.ContainsKey(scene_type))
            {
                return(null);
            }

            BaseScene scene = new BaseScene();

            scene.SceneGUID = ++m_ShareGUID;
            scene.Setup(scene_type);
            m_DicScenes.Add(scene.SceneGUID, scene);

            return(scene);
        }