




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flash网络编程技术,“网络赛车游戏”技术分析,网络应用程序系统体系结构,点对点结构:只有两个玩家的一对一游戏系统才采用点对点体系结构,两台电脑通常通过调制解调器或者串行电缆直接连接,两个玩家相互不断把消息发送给对方,发送的消息内容则有赖于具体的游戏。这种模式现在用的不多了。,客户机-服务器:客户机-服务器的连接方式和通讯方式都不同于点对点的对等模式,客户端指的是玩家的计算机上安装的游戏程序,服务器则是一台中心计算机,它把许多客户端连接起来,负责处理许多客户端无法完成的工作。当客户端执行任务时,如移动或攻击,那么有关信息就传送到服务器,而服务器再把这个信息发送给其他所有的客户端。这样做的好处就是可以是连接到一个游戏中的人数不受限制。另外,服务器还要使所有客户端保持同步。在客户端-服务器结构中,玩家并不对等的直接相互发送信息给对方,而是任何的动作包括移动、射击、甚至对话都必须经过服务器。服务器也有很多类型,如游戏服务器、FTP服务器、HTTP服务器等。,Internet协议地址:确定一台Internet中的电脑的位置的方法是通过IP地址来定位的。但是,光有IP地址还不够,计算机如何响应请求还取决于它的设置,所以还要使用端口。端口:端口是和IP地址一起使用的一个数字。端口好比电视的频道。很多端口号是系统为特定的网络服务保留的,如端口80是为HTTP服务保留的,21号是为FTP服务保留的等等,自定义的服务端口不能和其他正在使用的端口发生冲突。,防火墙:在Internet上客户端把信息传递给服务器时常常要经过一个所谓的防火墙。防火墙是一个设备或程序,它是通过封锁某些端口而不让信息通过从而阻挡意想不到的黑客发送给计算机的数据或者从计算机获取数据。标准的防火墙通常是封锁1023以上的所有端口,这可能给多人网络游戏造成问题。因此,为了确保网络游戏的正常运行,必须关闭防火墙,否则,游戏就不能使用快速的套接字通信方式,而只能用较慢的HTTP通信方式。,多人FlashFlash有两种与外部资源通讯的方法:HTTP和套接字(Socket),它们各有优缺点。,HTTP:超文本传输协议(HTTP)是Web中计算机之间传输数据的标准方式,它通过向HTTP服务器(网站)发送变量来进行工作,而服务器执行各种任务并且把信息反馈给Flash客户端。HTTP是在向服务器发送数据时开始连接,并在结果返回给Flash客户端后关闭连接。他和我们访问网页时使用的是相同的协议。,在Flash中HTTP信息主要是利用LoadVariables函数来发送的,如下面某个按钮中的ActionScript脚本:On(release)a=1;b=”HELLO”;LoadVariables(,_root.results,”POST”);,以上代码创建了两个变量a和b,然后通过HTTP将它们到的HTTP服务器上。在服务器对这些变量进行了处理之后,就会把结果返回给_root主时间线上称之为results的电影剪辑。,LoadVariables有两种发送数据的方式:GET和POST,信息通过HTTP发送时还会发送一些其他信息(如当前时间、用户地址、参照地址及浏览器信息等),这样就会使系统繁忙而速度减慢。显著的缺点就是它的速度和连接问题。另外也意味着服务器无法主动与客户端进行对话。尽管如此,我们还是可以利用制作很多游戏,其好处就是可以顺利通过绝大多数防火墙。由于连接和通信方面的问题,他最适合回合制游戏。,套接字:套接字通信是近来才应用到中的通信方法之一,也是最有效的方法之一。套接字连接是通过和一台套接字服务器建立的,服务器一旦接到连接请求,连接就开始建立,这样,客户端和服务器之间就可以随时实时传送任何数据。因此套接字是一种客户端与服务器之间非常迅速而且稳定的通信方式,常被用于制作高速、实时的多人游戏。,XMLSocket类可用于在服务器计算机与运行FlashPlayer的客户端之间创建永久套接字连接。客户端套接字实现了等待时间较短的数据传输,例如,实时聊天应用程序所需的快速数据传输。,开启并使用套接字:sock=newXMLSocket();/创建一个XMLSocket对象functionmyOnConnect(success)/创建一个函数用于服务器返回连接成功信息时被调用if(success)trace(“Connected”);elsetrace(“Failed”);functionmyOnXML(doc)/创建一个函数用于服务器给我们发送信息时被调用来处理这些信息(字符串)trace(doc);sock.onXML=myOnXML;/使自定义的函数成为XMLSocket对象的回调函数sock.onConnect=myOnConnect;/使自定义的函数成为XMLSocket对象的回调函数sock.connect(ipaddress,serverport);/向服务器发出连接请求,要使用何种通信方法?要由你要制作的游戏类型决定,如果是快速、实时的游戏则采用套接字,而如果玩家计算机处于防火墙一端则可以使用HTTP方式制作不用实时高速结构的游戏。对于flash,我们只能使用客户端服务器模式而不能使用对等模式。因为Flash不像服务器,它在没有建立连接前不能在端口进行监听。,数据包:数据包可以是任何我们所期望的东西,其大小和形状都会因为发送的内容不同而有所差异。比如,发送一个玩家位置的数据包可以表示为:L,p451,x200,y100这就是我们自己定义的在服务器和客户端之间传递的一个数据包,对我们来说,数据包仅仅是一个字符串,它的意义是由我们自己定义的。上述数据包包含的意思是:“Thisisaplayerslocation,Playernumber451isatlocation_x=200,_y=100.”如果数据包存储在一个名为packet的变量里,那么我们可以这样把数据包发送给服务器:sock.send(packet);,数据包很简单,而且不需要大量繁琐的分析和解释,只需要几个简单的字符串操作就行了。数据包通常是在事件发生时发送的:移动开火连接断开连接聊天消息重新开始游戏按键的状态,设计数据包时既要考虑哪些信息可以完全传递游戏时间的内容,又不能用过多的信息,以避免占用不必要的带宽。,服务器:一般来说,服务器应该运行在高性能计算机上,对硬件、硬盘空间、网络带宽等有较高的要求,这在资金方面负担较重。当然,对于我们开发的小游戏来说,没有那么高的要求。有几点局限性:服务器连接速度在很大程度上决定了游戏质量的好坏;客户端连接速度也往往会影响游戏的顺利进行带宽。,具体游戏:我们来看看这个游戏“无线赛车”游戏:你可以驾驶一辆无线电控制的赛车在赛道上环绕,另外还可以有5个人参加进来,这个游戏最大允许人数是6个。第一个进入游戏的人是指挥官,他有权让其他玩家回到起跑线,让游戏重新开始,这时在屏幕的中央会有倒计数的秒显示。在比赛中可能会出现燃料用完的情况,这时,玩家必须把车开到加油站加油。,赛道所在的比赛主游戏区域见下图:工具栏,其中包含一些关键项目:速度表、油表、圈数计数器、聊天对话框、指挥官对话框,游戏的控制:这个游戏使用方向键进行控制,非常直观。赛车的运动通过速度/角度的方法实现,玩家的速度和角度转化为X和Y轴的速度。这种转化也叫极坐标向直角坐标转化,变换的公式很简单,对于每辆赛车都有下面的代码:dx=vel*Math.sin(ang);dy=vel*Math.cos(ang);,Y,X,dx,dy,ang,V,当然,要确定具体的量,需要对vel和ang进行控制:maxspeed=12;/Moveifkeysarepressedif(key_Up)vel+=1;if(key_Down)vel-=1;if(key_Left,可以看出,ang和vel使用方向键控制的,然后用他们来计算dx和dy。最后我们在每个桢中对赛车的当前位置加入dx和dy值:_x+=dx;_y+=dy;,碰撞,游戏中有三种形式的碰撞:汽车和草坪的碰撞汽车和障碍物之间的碰撞汽车和汽车之间的碰撞,汽车和草坪的碰撞,汽车和障碍物之间的碰撞,汽车和汽车之间的碰撞,阴影,节点,用节点判断汽车是否完成整圈的赛程,多辆汽车,本机的键盘智能控制自己的一辆赛车,其他玩家的赛车是通过其他玩家计算机发送给服务器再转发过来的数据包里的键盘信息控制的,游戏中的数据包和通信,客户端响应事件:登录按键的状态碰撞汽油耗尽断开连接聊天消息重新开始游戏,客户端数据包,普通位置数据包登录数据包聊天数据包重新开始数据包,游
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏盐城工学院招聘7人模拟试卷及参考答案详解1套
- 2025年福建省泉州市晋江市反邪教协会招聘1人考前自测高频考点模拟试题有完整答案详解
- 2025广东佛山市南海区桂城街道招聘辅警体能测评、笔试模拟试卷及答案详解(全优)
- 2025内蒙古通辽开鲁县教体系统招聘206人考前自测高频考点模拟试题及答案详解(有一套)
- 2025湖南湘潭市岳塘区事业单位急需紧缺专业人才引进55人考前自测高频考点模拟试题及一套参考答案详解
- 三年级下册道德与法治教学设计-7请到我的家乡来 第一课时 人教部编版
- 2025广告传媒公司合作协议范本
- 2025版政府间合作协议范本
- 2025专业版委托代理协议
- 安顺消防安全培训直播课件
- 中医全科课件下载
- T/CAAM 0004-2023针刺临床试验中假针刺对照设置与报告指南
- 拒绝烟草诱惑向“吸烟”说不!课件-2024-2025学年高二下学期世界无烟日主题班会
- 4《少给父母添麻烦》公开课一等奖创新教案(第二课时)
- T-JLJY 01 -2023 幼儿园教育装备配置规范
- 《SLT631-2025水利水电工程单元工程施工质量验收标准》知识培训
- 马拉松志愿者培训
- 企业信息化标准规范-全面剖析
- 临床微生物学检验 2细菌形态学检查、培养和分离技术 学习资料
- 防高处坠落 物体打击专项施工方案
- 小学少先队数字化学习计划2024-2025
评论
0/150
提交评论