/// <summary> /// 他人进入的广播处理 /// </summary> /// <param name="newUser"></param> private void enterBro(UserDto newUser) { //fix bug ////发消息 显示玩家的状态面板所有游戏物体 //Dispatch(AreaCode.UI, UIEvent.PLAYER_ENTER, newUser.Id); //更新房间数据 MatchRoomDto room = Models.GameModel.MatchRoomDto; room.Add(newUser); resetPosition(); //给UI绑定数据 if (room.LeftId != -1) { UserDto leftUserDto = room.UIdUserDict[room.LeftId]; Dispatch(AreaCode.UI, UIEvent.SET_LEFT_PLAYER_DATA, leftUserDto); } if (room.RightId != -1) { UserDto rightUserDto = room.UIdUserDict[room.RightId]; Dispatch(AreaCode.UI, UIEvent.SET_RIGHT_PLAYER_DATA, rightUserDto); } //发消息 显示玩家的状态面板所有游戏物体 Dispatch(AreaCode.UI, UIEvent.PLAYER_ENTER, newUser.Id); //给用户一个提示 promptMsg.Change("有新玩家 ( " + newUser.Name + " )进入", UnityEngine.Color.blue); Dispatch(AreaCode.UI, UIEvent.PROMPT_MSG, promptMsg); }
/// <summary> /// 他人进入的的处理 /// </summary> private void EnterBroadcast(UserDto newUser) { MatchRoomDto room = Model.gameModel.matchRoomDto; //更新房间数据 room.Add(newUser); //重置玩家位置 //显示现在房间内的玩家 ResetPositon(); if (room.leftId != -1) { UserDto leftDto = room.uIdUserDtoDict[room.leftId]; Dispatch(AreaCode.UI, UIEvent.SET_LEFT_PLAYER_DATA, leftDto); } if (room.rightId != -1) { UserDto rightDto = room.uIdUserDtoDict[room.rightId]; Dispatch(AreaCode.UI, UIEvent.SET_RIGHT_PLAYER_DATA, rightDto); } //发消息 打开玩家状态面板所有物体 Dispatch(AreaCode.UI, UIEvent.PLAYER_ENTER, newUser.id); //告诉用户玩家进入 msg.ChangeText(newUser.name + "进入了游戏", Color.yellow); Dispatch(AreaCode.UI, UIEvent.PROMPTA_ANIM, msg); }
/// <summary> /// 创建房间数据传输对象 /// </summary> /// <param name="matchRoom"></param> /// <param name="roomDto"></param> private void makeRoomdto(MatchRoom matchRoom, out MatchRoomDto roomDto) { roomDto = new MatchRoomDto(); foreach (var uid in matchRoom.UidClientpeerDic.Keys) { UserModel userModel = UserCache.Instance.GetModelByClientPeer(matchRoom.UidClientpeerDic[uid]); UserDto userDto = new UserDto(userModel.Id, userModel.Name, userModel.Money, userModel.WinCount, userModel.LoseCount, userModel.RunCount, userModel.Lv, userModel.Exp); //roomDto.UidUdtoDic.Add(uid, userDto); roomDto.Add(uid, userDto); } roomDto.ReadyUidlist = matchRoom.ReadyUidlist; }
/// <summary> /// /// </summary> /// <param name="room"></param> /// <returns></returns> private MatchRoomDto MakeRoomDto(MatchRoom room) { MatchRoomDto roomDto = new MatchRoomDto(room.id); roomDto.readyUidList = room.readyUidList; //给roomDto中的所有玩家信息字典 赋值 foreach (var id in room.uidList) { UserModel model = user.GetModelById(id); UserDto userDto = new UserDto(); userDto.Set("", model.id, model.name, model.beens, model.winCount, model.loseCount, model.runCount, model.lv, model.exp); roomDto.Add(userDto); } return(roomDto); }
/// <summary> /// other palyer enter room /// </summary> /// <param name="newUser"></param> /// private void enterBro(UserDto newUser) { //update room data MatchRoomDto room = Models.GameModel.MatchRoomDto; room.Add(newUser); resetPosition(); if (room.LeftId != -1) { UserDto leftUserDto = room.UserIdUserDtoDict[room.LeftId]; Dispatch(AreaCode.UI, UIEvent.SET_LEFT_PLAYER_DATA, leftUserDto); } if (room.RightId != -1) { UserDto rightUserDto = room.UserIdUserDtoDict[room.RightId]; Dispatch(AreaCode.UI, UIEvent.SET_RIGHT_PLAYER_DATA, rightUserDto); } Dispatch(AreaCode.UI, UIEvent.PLAYER_ENTER, newUser.Id); }