在线演示地址:
Silverlight+WCF 新手实例 象棋 在线演示
上一系列四十篇索引:Silverlight+WCF 新手实例 象棋 专题索引
佛靠金装,人要衣裳,房间也要加金砖。本篇我们来把房间装修下,让它看起来专业一点!
一:效果预览,先上图
这是之前的房间图片:
今天我们要装修成的房间图片:
再上一张游戏中的效果图:
二:实现说明
2:装修房间需要增加的元素
增加的元素有:
三:代码实现[WCF端]
WCF端:Player玩家实体
///
<summary>
/// 游戏玩家 by 路过秋天
/// </summary>
[DataContract]
public class Player
{
// ...省略以前N个实体...
[DataMember]
public string Head
{
get ;
set ;
}
}
/// 游戏玩家 by 路过秋天
/// </summary>
[DataContract]
public class Player
{
// ...省略以前N个实体...
[DataMember]
public string Head
{
get ;
set ;
}
}
WCF端:Room房间实体
///
//
<summary>
/// // 红色座位是否有人
/// // </summary>
// [DataMember]
// public bool RedInChair
// {
// get;
// set;
// }
/// // <summary>
/// // 黑色座位是否有人
/// // </summary>
// [DataMember]
// public bool BlackInChair
// {
// get;
// set;
// }
#region 装饰房间增加的字段
[DataMember]
public Player Redplayer
{
get ;
set ;
}
[DataMember]
public Player BlackPlayer
{
get ;
set ;
}
[DataMember]
public bool IsGaming
{
get ;
set ;
}
#endregion
}
/// // 红色座位是否有人
/// // </summary>
// [DataMember]
// public bool RedInChair
// {
// get;
// set;
// }
/// // <summary>
/// // 黑色座位是否有人
/// // </summary>
// [DataMember]
// public bool BlackInChair
// {
// get;
// set;
// }
#region 装饰房间增加的字段
[DataMember]
public Player Redplayer
{
get ;
set ;
}
[DataMember]
public Player BlackPlayer
{
get ;
set ;
}
[DataMember]
public bool IsGaming
{
get ;
set ;
}
#endregion
}
说明:
OK,字段是简单改完了,编绎一下,发现近N个的报错了吧,只能一个一个修改了。
2:WCF端:Service.cs代码修改[被注释的是原来的代码,未注释的是修改的代码]
方法:EnterRoom
//
if (!room.RedInChair)
//
房间的红色座位有没有人
// {
// room.RedInChair = player.ColorValue == 1;
// }
// if (!room.BlackInChair) // 房间的黑色座位有没有人
// {
// room.BlackInChair = player.ColorValue == 2;
// }
if (room.Redplayer == null && player.ColorValue == 1 )
{
room.Redplayer = player;
}
else if (room.BlackPlayer == null && player.ColorValue == 2 )
{
room.BlackPlayer = player;
}
// {
// room.RedInChair = player.ColorValue == 1;
// }
// if (!room.BlackInChair) // 房间的黑色座位有没有人
// {
// room.BlackInChair = player.ColorValue == 2;
// }
if (room.Redplayer == null && player.ColorValue == 1 )
{
room.Redplayer = player;
}
else if (room.BlackPlayer == null && player.ColorValue == 2 )
{
room.BlackPlayer = player;
}
方法:OutRoom
public
void
EndGame(Player player)
{
Notify.Game(player, GameType.End);
// 以下几行为新增加的代码
if (player.AttachInfo == " 0 " || player.AttachInfo == " 1 " || player.AttachInfo == " 2 " )
{
// 游戏结束,清除历史数据
roomList[player.RoomID].StepList.Clear();
roomList[player.RoomID].IsGaming = false ;
Notify.Room(roomList[player.RoomID]); // 通知房间改变成游戏状态;
}
}
{
Notify.Game(player, GameType.End);
// 以下几行为新增加的代码
if (player.AttachInfo == " 0 " || player.AttachInfo == " 1 " || player.AttachInfo == " 2 " )
{
// 游戏结束,清除历史数据
roomList[player.RoomID].StepList.Clear();
roomList[player.RoomID].IsGaming = false ;
Notify.Room(roomList[player.RoomID]); // 通知房间改变成游戏状态;
}
}
说明:
结言:
对于Silverlight客户端,要调整的代码那是相当的多,所以等下节实现,不然一篇下来太长了。欢迎有兴趣者对本系列持续关注!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。