/// <summary> /// 用户准备 /// </summary> /// <param name="client"></param> private void Ready(ClientPeer client, string username, string password) { color++;//将颜色赋予参加房间游戏的玩家 TODO 多线程时需注意color的状态锁 if (color > 4) { color = 1; } roomCache.EnterRoom(client, username, password); //将已准备的人员数量广播到房间其他人 roomDto.userList = roomCache.GetRoomByClient(client).userList; roomDto.color = color; Console.WriteLine(roomDto.userList[0].username); roomCache.BroadcastMessageToAll(client, OpCode.User, UserCode.READY_SRES, roomDto); //如果是创建人或者第一个准备的人作为房主 开放房主按钮进行使用 roomCache.GetRoomByClient(client).userDic.Keys.First().Send(OpCode.User, UserCode.HOUSEOWNER, 0); }
/// <summary> /// 游戏开始 /// </summary> /// <param name="client"></param> private void GameStart(ClientPeer client) { //游戏开始之后将当前房间设置为进行状态 防止其他人加入游戏又没有房主 roomCache.GetRoomByClient(client).isPlay = true; roomCache.BroadcastMessageToAll(client, OpCode.Game, GameCode.GAMESTART_SRES, null); }