private void StartGame(GameRoomDto dto) { Debug.Log("开始游戏"); SceneMesg sm = new SceneMesg(2, () => { Debug.Log("游戏场景加载完毕"); //将传来的房间数据里的玩家保存并根据位置信息生成对应角色 //foreach (var item in dto.UserAccDtoDict.Values) //{ // Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, item); //} //foreach (var item in dto.UserTransDto.Values) //{ // Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, item); //} foreach (var item in dto.UserAccDtoDict.Keys) { Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, dto.UserAccDtoDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, dto.UserTransDto[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HP, dto.UserHpDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HG, dto.UserHgDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_KILL, dto.UserKillDict[item]); } }); Dispatch(AreaCode.SCENE, SceneEvent.SCENE_LOAD, sm); }
private void Enter(GameRoomDto dto) { if (dto == null) { smg.Change(OpCode.MATCH, MatchCode.MATCH_ENTER_CREQ, null); Dispatch(AreaCode.NET, 0, smg); return; } SceneMesg sm = new SceneMesg(2, () => { foreach (var item in dto.UserAccDtoDict.Keys) { Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_ADD, dto.UserAccDtoDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_PLAYER_SPAWN, dto.UserTransDto[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HP, dto.UserHpDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_HG, dto.UserHgDict[item]); Dispatch(AreaCode.GAME, GameEvent.GAME_SYNC_KILL, dto.UserKillDict[item]); //ArmsDto armsDto = new ArmsDto(item, dto.UserArmsDict[item]); //Dispatch(AreaCode.FIGHT, FightEvent.FIGHT_SYNC_ARMSTYPS, armsDto); } }); Dispatch(AreaCode.SCENE, SceneEvent.SCENE_LOAD, sm); }