Silverlight+WCF 实战-网络象棋最终篇之房间装修-Silverlight端[带第九阶段源码](三)

简介:

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示

上一系列四十篇索引:Silverlight+WCF 新手实例 象棋 专题索引

 

 

本篇紧接着上一篇:Silverlight+WCF 实战-网络象棋最终篇之房间装修-WCF端(二)

继续为房间进行如下的装修:

 

代码实现[Silverlight端]

说明:

由于更换背景引入图片,房间的属性发生了较大的变化,由此引发了客户端房间类较大的改动。

 

 

1:Silverlight端:GameRoom类大调整[被注释的是原来的代码,未注释的是修改的代码]

 

由于房间本次装修的变化较大,成本也是不低的。

a:增加的全局变量

TextBlock redText; // 红色玩家文字
TextBlock blackText; // 黑色玩家文字
private  SolidColorBrush defaultBrush  =   new  SolidColorBrush(Color.FromArgb( 0 0 0 0 )); // 默认透明的背景色

 

b:增加的属性[同样删除两个字段RedPlayerInChair/BlackPlayerInChair]

复制代码
         /// //  <summary>
        
/// // 红色座位有人
        
/// //  </summary>
         // public bool RedPlayerInChair
        
// {
        
//     get;
        
//     set;
        
// }
         /// //  <summary>
        
/// // 黑色座位有人
        
/// //  </summary>
         // public bool BlackPlayerInChair
        
// {
        
//     get;
        
//     set;
        
// }
         public   bool  IsGaming
        {
            
get ;
            
set ;
        }
        
public  GameService.Player RedPlayer
        {
            
get ;
            
set ;
        }
        
public  GameService.Player BlackPlayer
        {
            
get ;
            
set ;
        }
        
///   <summary>
        
///  背景图片[还没玩游戏]
        
///   </summary>
         public  ImageBrush BackgroundBrush
        {
            
get ;
            
set ;
        }
        
///   <summary>
        
///  背景图片[游戏中]
        
///   </summary>
         public  ImageBrush GamingBrush
        {
            
get ;
            
set ;
        }
复制代码

 

c:调整构造函数,增加背景图传入[由于背景图片引入,原来的长方形房间变成正方形,由此改变了部分算法]

复制代码
         public  GameRoom( int  roomID, Point location,  int  width, ImageBrush background, ImageBrush gaming)
        {
            RoomHeight
= RoomWidth  =  width;
            RoomID 
=  roomID;
            InitPoint 
=  location;
            BackgroundBrush 
=  background;
            GamingBrush 
=  gaming;
        }
复制代码

 

d:绘房间和重绘房间函数,直接把以前的注释掉,写个新了

Draw/ReDraw函数

 

e:新增加的取用户头像图片的函数

复制代码
         private  ImageBrush GetPlayerBrush( string  head)
        {
            ImageBrush headBrush 
=   new  ImageBrush()
            {
                ImageSource 
=   new  BitmapImage( new  Uri( " images/head/ "   +  head, UriKind.Relative))
            };
            
return  headBrush;
        }
复制代码

 

f:点击黑色座位事件:blackChair_MouseLeftButtonDown

复制代码
             // if (!BlackPlayerInChair)
            
// {
            
//     BlackPlayerInChair = true;
            
//     blackChair.Fill = new RadialGradientBrush(Colors.Blue, Colors.White);
            
//     Enter(2);
            
// }
             if  (BlackPlayer  ==   null )
            {
                BlackPlayer 
=  App.player;
                blackChair.Fill 
=  GetPlayerBrush(App.player.Head);
                blackText.Text 
=  App.player.NickName;
                Enter(
2 );
            }
复制代码

 

g:点击红色座位事件:redChair_MouseLeftButtonDown

复制代码
             // if (!RedPlayerInChair)
            
// {
            
//     RedPlayerInChair = true;
            
//     redChair.Fill = new RadialGradientBrush(Colors.Blue, Colors.White);
            
//     Enter(1);
            
// }
             if  (RedPlayer  ==   null )
            {
                RedPlayer 
=  App.player;
                redChair.Fill 
=  GetPlayerBrush(App.player.Head);
                redText.Text 
=  App.player.NickName;
                Enter(
1 );
            }
复制代码

说明

GameRoom类的代码到此就改完了,差不多把整类都重写了,看,成本多高~~~房子啊房子~

 

 

2:Silverlight端:Game类调整

代码不多,把原来的函数注释掉,换个新的如下:

CreateGameRoom 创建房间

 

 

3:Silverlight端:Room.xaml调整

房间更新接收通过时,由于字段变化,需要调整一下:

复制代码
         void  UpdateRoomState(GameService.Room gsRoom, GameRoom room)
        {
            
// room.RedPlayerInChair = gsRoom.RedInChair;
            
// room.BlackPlayerInChair = gsRoom.BlackInChair;
            room.RedPlayer  =  gsRoom.RedPlayer;
            room.BlackPlayer 
=  gsRoom.BlackPlayer;
            room.IsGaming 
=  gsRoom.IsGaming;
            room.ReDraw();
        }
复制代码

还有构造函数原来创建了30个房间,为兼容高度,改成20个房间了。

game.CreateGameRoom(20);

 

 

 

4:Silverlight端:Login.xaml调整

登陆的时候,给用户设置一个默认头像,当然也可以改成选择头像的方式:

btnLogin_Click

 

第九阶段源码:点击下载

 

 

结言:

为了装修房间,大动干戈了一场,不过看到最后结果,相信还是值的。

 

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/10/13/1849939.html

相关文章
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
457 12
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的网络办公系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的网络办公系统的详细设计和实现(源码+lw+部署文档+讲解等)
161 2
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
351 10
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
小程序 前端开发
网络祭祀人物微信小程序模板源码
网络祭祀人物微信小程序模板源码
288 5
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的网络在线考试系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的网络在线考试系统附带文章源码部署视频讲解等
194 0
基于springboot+vue.js+uniapp的网络在线考试系统附带文章源码部署视频讲解等
|
网络协议 网络架构
【网络编程入门】TCP与UDP通信实战:从零构建服务器与客户端对话(附简易源码,新手友好!)
在了解他们之前我们首先要知道网络模型,它分为两种,一种是OSI,一种是TCP/IP,当然他们的模型图是不同的,如下
577 1
高端响应式网络科技公司网站源码pbootcms模板
这是一款高端响应式网络科技公司网站源码pbootcms模板,适合所有类型的网络公司展示,整站源码下载,为您简化开发过程,可自适应手机端。
456 3
|
JavaScript Java 测试技术
基于SpringBoot+Vue的网络相册的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的网络相册的详细设计和实现(源码+lw+部署文档+讲解等)
159 1
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的网络小说微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的网络小说微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
233 1

热门文章

最新文章