Example #1
0
        /// <summary>
        /// 清空场景
        /// </summary>
        public void ResetScene()
        {
            // 重置物理模拟环境
            PhysicsSys.Instance.PhysicsSimulator.Clear();
            // 重置摄像机...

            // 清空ItemMgr
            ClearItemList(); // 过期..
            backgroundMgr = null;
            terrainMgr = null;
            actItemMgr = null;
            role = null;
            forgroundMgr = null;
            
        }
Example #2
0
        /// <summary>
        /// 分析场景数据
        /// 使用SceneData构建SceneMgr的Item列表
        /// </summary>
        /// <param name="sceneData"></param>
        public void LoadScene(String sceneName)
        {
            // 读取文件
            SceneData sceneData = SceneData.Load(sceneName);

            // 读取背景
            backgroundMgr = new ItemMgr();
            foreach (BackgroundData backgroundData in sceneData.backgroundDataList)
            {
                backgroundMgr.AddItem(new Background(backgroundData));
            }
            

            // 读取场景地板...
            terrainMgr = new TerrainMgr();
            foreach (TerrainData terrainData in sceneData.terrainDataList)
            {
                terrainMgr.AddItem(new Terrain(terrainData));
            }
            foreach (TiledTerrainData tiledTerrainData in sceneData.tiledTerrainDataList)
            {
                terrainMgr.AddItem(new TiledTerrain(tiledTerrainData));
            }

            // 读取位置信息...
            // 包括角色出生点、道具、交互物体、开关触发器、门等等的位置信息...
            // 并关联程序中定义的触发行为 (触发行为包括:获得物品、物理效应、电影模式等等)
            // (另外还有一些非触发行为: 使用道具枪支钩绳,这些部分适合定义在管理器中,而不是角色本身)

            // 读取连协开关...
            // 设定这类对象的关联参数
            // 并关联程序中定义的触发行为

            // 读取动画数据...
            // 包括事件列表
            // 动画的构成包括 -- Item的动态创建、动画、物理效应、固定暂停、角色对话心理、摄像机动画、屏幕特效、音乐切换、音效等等及其组合表现形式

            // 读取前景、等杂项...

            // 读取完毕
        }