首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于ARM和WinSock的多人对战游戏平台设计
来源:本站整理  作者:佚名  2011-07-17 16:06:09



i.JPG


    对于某些步骤需要作详细说明:
    1)开辟线程
    如果让服务器一直recvfrom(),则主线程将一直执行此函数,造成消息拥堵,从而导致其他事件难以响应,因此选择开辟新线程在后台接收客户端信息,合理分配系统资源。
    开辟线程的过程如下:
    ①定义要传送给线程的全局性质的结构体RECVPARAM,成员为Dlg类指针类型变量。
    ②定义RECVPARAM结构体变量pRecvParam,并把当前工程的Dlg类指针赋给其成员;创建线程,把pRecvParam传递给线程;然后关闭线程。
    ③在线程回调函数中接收传递来的变量pRecvParam,然后就可以调用Dlg类的成员来实现功能。
    2)信息格式
    ①客户端连接信息
     格式随意的字符串,目的是让服务器端接收到数据,从而发现客户端IP地址。我们发的是“0000”。
    ②客户端下棋信息
    信息格式:用户标识(1位)、落子横坐标(2位)、落子纵坐标(2位)。
    其中,用户标识位1代表先手(白方),0代表后手(黑方)。
    ③服务器端发送信息
    指导客户端画棋子以及显示状态。
    信息格式:用户标识(1位)、落子横坐标(2位)、落子纵坐标(2位)、游戏状态(1位)。
    其中,前5位与从客户端接收的相同:游戏状态位1表示游戏结束,0表示游戏未结束。
3.3.2 客户端程序
    创建基于单文档的MFC工程。
    在App类的BOOL InitInstance()中加载套接字库:AfxSocketInit();
    添加对话框资源CDlgMode,用于选择游戏模式:
    添加对话框资源CDlgLink,用于连接服务器;并在其上画一个IP地址控件,用于填写服务器IP;在确定按钮的响应函数中初始化套接字socket()、bind(),并向服务器发送连接请求sendto();
    在View类构造函数中将模式选择对话框DoModal(),选择进入双人模式,之后的程序开发流程如图8所示。

j.JPG



4 代码移植
4.1 WindowsCE简介
    Windows CE是基于Win32 API重新开发的新型信息设备平台,具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。大量用户对于Windows操作方式和编程的熟悉,是Windows CE作为嵌入式操作系统迅速发展的最大的优势,也是选择的原因。
4.2 代码移植
    安装WinCE5.0的标准SDK,在VS2008开发环境下创建智能设备的MFC工程,选择基于对话框或单文档的应用程序,并选择刚刚安装的标准SDK平台。工程创建完成后,将在Win32下开发的代码按同样的方式转移过来,然后编译,修改错误。
    WinCE是UnICode环境,尽管WinCE支持ASCII功能来进行文件交换,但是WinCE的本地文件格式是Unicode。所以,要将字符串转换为UMCMe才能使用。另外就是代码移植过程中丢三落四的粗心错误。以下列举代码移植过程中遇到的问题及解决方法:
    1)某些函数发生变化,不再识别ASCII码字符或字符串,例如MessageBox,其字符串参数必须经_T(“”)转换成Unicode;另外Cstring类不要轻易使用;
    2)某些功能使用不同函数,例如整型转字符串型,由函数itoa变为_itoa_s;
    3)智能设备项目中没有IP地址控件,用编辑框代替,多了些字符串拼接、转换的工作;
    4)不要忘了使客户端与服务器端的端口号保持一致。

5 硬件调试及结果
5.1 PC与ARM板连接
    1)平台连接
    通过网线相连,然后指定网关地址和IP地址。指定方法如下:本地连接一>点右键看属性—>双击“Internet协议(TCP/IP)”一>使用下面的IP地址,自己填写即可。特别注意,当两台机器直接用网线相连而不使用路由器时,必须同一个网关才可实现数据交换。可通过PINg命令测试网络是否连通。
    2)运行游戏
    利用同步软件MicroSOFt AcfiveSync将开发的WinCE5.0下游戏程序传到ARM平台中,即可在上面运行。
5.2 ARM板与ARM板连接
    与上述过程类同。

6 结论
    经实际操作验证,这种多人游戏开发方式(多线程)使得资源占用率很低,S3C2410处理器完全可以胜任,整个游戏运行流畅。游戏平台可以通过有线方式互联,也可以通过无线方式互联,操作简单,使用方便。而且这种游戏平台具有很高的开放性,利用上述的开发框架可以轻易开发出更多更好玩的游戏。

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:170,687.50000 毫秒