/// <summary> /// 清空场景 /// </summary> public void ResetScene() { // 重置物理模拟环境 PhysicsSys.Instance.PhysicsSimulator.Clear(); // 重置摄像机... // 清空ItemMgr ClearItemList(); // 过期.. backgroundMgr = null; terrainMgr = null; actItemMgr = null; role = null; forgroundMgr = null; }
/// <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的动态创建、动画、物理效应、固定暂停、角色对话心理、摄像机动画、屏幕特效、音乐切换、音效等等及其组合表现形式 // 读取前景、等杂项... // 读取完毕 }