网络五子棋的架构设计(二)--界面层
2010-04-15 18:50
357 查看
界面的处理
为了有一个测试的平台,我先开始写界面层由于服务端和客户端的下棋业务逻辑处理是完全相同的,因此计划在一个窗体内实现,窗体内只维护一个INet接口的实例。另外再使用另一个窗体用于建立连接,并且把得到的INet实例传递给主要游戏窗体。
首先是服务端接收到连接后的处理:
void server_OnConnected(object sender, EventArgs e) { EventHandler handle = delegate(object s, EventArgs e1) { label1.Text = "连接ok"; this.Hide(); }; this.Invoke(handle); INet obj=sender as INet; CEventHandle c = new CEventHandle(CreateWindow); this.Invoke(c, obj, PieceLibrary.PieceType.Black); }
由于C#2.0后默认不允许跨线程操作,因此这里使用this.Invoke利用窗体主线程调用委托来实现跨线程操作,服务器一旦有人连接成功后,便创建一个游戏主窗体,并且把本身自己传递给主窗体,执黑棋。
客户端操作只需要直接连接成功后,创建游戏窗体即可
Client client = new Client(this.txtIP.Text, 12345); try { this.btnCreate.Enabled = false; this.btnJoin.Enabled = false; label1.Text = "连接中,请稍候……"; client.Connect(); this.Hide(); INet obj = client as INet; CreateWindow(obj, PieceLibrary.PieceType.White);
这样,在界面层中,服务端和客户端的不同的操作完全由开始窗体frmBegin来解决,而作为游戏的主窗体frmMain只需要面对两个完全一样的INet接口的实例即可。
相关文章推荐
- 网络五子棋的架构设计(三)--业务逻辑
- 网络五子棋的架构设计(一)--网络通信层
- 网络的四层架构与网站的数据库的用户信息表的设计
- 一种高性能网络游戏服务器架构设计
- 基于Hadoop开发网络云盘系统架构设计方案
- Hadoop集群环境下的网络架构的设计与优化
- 【服务器架构】网络游戏服务器构架设计
- 【转】网络界面设计中的批判性思维
- 一种高性能网络游戏服务器架构设计
- 我的手机管家(11) 网络助手 界面设计及适配器
- APP开发流程实例讲解-儒释道网络电台八天开发全程-在Android Studio中完成界面设计
- 直播平台的高并发架构设计3.2-分发网络
- iOS应用架构谈(三):网络层设计方案(上)
- 一种高性能网络游戏服务器架构设计
- 网络架构规划、设计和实施过程中什么最难做出选择?
- Unity客户端架构设计与网络游戏关键技术(Avatar,热更新,Protobuf)
- Unity 3D 网络游戏架构设计
- kubernets 架构设计 第3章 网络