《Flash网络编程》PPT课件.ppt

上传人:san****019 文档编号:20930984 上传时间:2021-04-21 格式:PPT 页数:42 大小:463.10KB
收藏 版权申诉 举报 下载
《Flash网络编程》PPT课件.ppt_第1页
第1页 / 共42页
《Flash网络编程》PPT课件.ppt_第2页
第2页 / 共42页
《Flash网络编程》PPT课件.ppt_第3页
第3页 / 共42页
资源描述:

《《Flash网络编程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Flash网络编程》PPT课件.ppt(42页珍藏版)》请在装配图网上搜索。

1、Flash网络编程技术“网络赛车游戏”技术分析 网络应用程序系统体系结构点对点结构: 只有两个玩家的一对一游戏系统才采用点对点体系结构,两台电脑通常通过调制解调器或者串行电缆直接连接,两个玩家相互不断把消息发送给对方,发送的消息内容则有赖于具体的游戏。这种模式现在用的不多了。 客户机-服务器 : 客户机-服务器的连接方式和通讯方式都不同于点对点的对等模式,客户端指的是玩家的计算机上安装的游戏程序,服务器则是一台中心计算机,它把许多客户端连接起来,负责处理许多客户端无法完成的工作。当客户端执行任务时,如移动或攻击,那么有关信息就传送到服务器,而服务器再把这个信息发送给其他所有的客户端。这样做的好

2、处就是可以是连接到一个游戏中的人数不受限制。另外,服务器还要使所有客户端保持同步。在客户端-服务器结构中,玩家并不对等的直接相互发送信息给对方,而是任何的动作包括移动、射击、甚至对话都必须经过服务器。服务器也有很多类型,如游戏服务器、FTP服务器、HTTP服务器等。 Internet协议地址 :确定一台Internet中的电脑的位置的方法是通过IP地址来定位的。但是,光有IP地址还不够,计算机如何响应请求还取决于它的设置,所以还要使用端口。端口 : 端口是和IP地址一起使用的一个数字。端口好比电视的频道。很多端口号是系统为特定的网络服务保留的,如端口80是为HTTP服务保留的,21号是为FTP

3、服务保留的等等,自定义的服务端口不能和其他正在使用的端口发生冲突。 防火墙 :在Internet上客户端把信息传递给服务器时常常要经过一个所谓的防火墙。防火墙是一个设备或程序,它是通过封锁某些端口而不让信息通过从而阻挡意想不到的黑客发送给计算机的数据或者从计算机获取数据。标准的防火墙通常是封锁1023以上的所有端口,这可能给多人网络游戏造成问题。因此,为了确保网络游戏的正常运行,必须关闭防火墙,否则,游戏就不能使用快速的套接字通信方式,而只能用较慢的HTTP通信方式。 多人Flash Flash有两种与外部资源通讯的方法:HTTP和套接字(Socket),它们各有优缺点。 HTTP: 超文本传

4、输协议(HTTP)是Web中计算机之间传输数据的标准方式,它通过向HTTP服务器(网站)发送变量来进行工作,而服务器执行各种任务并且把信息反馈给Flash客户端。HTTP是在向服务器发送数据时开始连接,并在结果返回给Flash客户端后关闭连接。他和我们访问网页时使用的是相同的协议。 在Flash中HTTP信息主要是利用LoadVariables函数来发送的,如下面某个按钮中的ActionScript脚本:On(release) a=1;b=”HELLO”;LoadVariables(http:/,_root.results,”POST”); 以上代码创建了两个变量a和b,然后通过HTTP将它们

5、到的HTTP服务器上。在服务器对这些变量进行了处理之后,就会把结果返回给_root主时间线上称之为results的电影剪辑。 LoadVariables有两种发送数据的方式:GET和POST,信息通过HTTP发送时还会发送一些其他信息(如当前时间、用户地址、参照地址及浏览器信息等),这样就会使系统繁忙而速度减慢。显著的缺点就是它的速度和连接问题。另外也意味着服务器无法主动与客户端进行对话。尽管如此,我们还是可以利用制作很多游戏,其好处就是可以顺利通过绝大多数防火墙。由于连接和通信方面的问题,他最适合回合制游戏。 套接字: 套接字通信是近来才应用到中的通信方法之一,也是最有效的方法之一。套接字连

6、接是通过和一台套接字服务器建立的,服务器一旦接到连接请求,连接就开始建立,这样,客户端和服务器之间就可以随时实时传送任何数据。因此套接字是一种客户端与服务器之间非常迅速而且稳定的通信方式,常被用于制作高速、实时的多人游戏。 XMLSocket 类可用于在服务器计算机与运行 Flash Player 的客户端之间创建永久套接字连接。客户端套接字实现了等待时间较短的数据传输,例如,实时聊天应用程序所需的快速数据传输。 开启并使用套接字:sock=new XMLSocket(); /创建一个XMLSocket对象function myOnConnect(success) /创建一个函数用于服务器返回

7、 连接成功信息时被调用 if(success) trace(“Connected”);else trace(“Failed”);function myOnXML(doc) /创建一个函数用于服务器给我们发送信息时被调用来处理这些信息(字符串) trace(doc);sock. onXML=myOnXML; /使自定义的函数成为XMLSocket对象的回调函数 sock. onConnect=myOnConnect; /使自定义的函数成为XMLSocket对象的回调函数sock. connect(ipaddress,serverport); /向服务器发出连接请求 要使用何种通信方法?要由你要制

8、作的游戏类型决定,如果是快速、实时的游戏则采用套接字,而如果玩家计算机处于防火墙一端则可以使用HTTP方式制作不用实时高速结构的游戏。对于flash,我们只能使用客户端服务器模式而不能使用对等模式。因为Flash不像服务器,它在没有建立连接前不能在端口进行监听。 数据包 :数据包可以是任何我们所期望的东西,其大小和形状都会因为发送的内容不同而有所差异。比如,发送一个玩家位置的数据包可以表示为:L,p451,x200,y100这就是我们自己定义的在服务器和客户端之间传递的一个数据包,对我们来说,数据包仅仅是一个字符串,它的意义是由我们自己定义的。上述数据包包含的意思是:“This is a pl

9、ayers location, Player number 451 is at location _x=200, _y=100.” 如果数据包存储在一个名为packet的变量里,那么我们可以这样把数据包发送给服务器:sock.send(packet); 数据包很简单,而且不需要大量繁琐的分析和解释,只需要几个简单的字符串操作就行了。数据包通常是在事件发生时发送的:1.移动2.开火3.连接4.断开连接5.聊天消息6.重新开始游戏7.按键的状态 设计数据包时既要考虑哪些信息可以完全传递游戏时间的内容,又不能用过多的信息,以避免占用不必要的带宽。 服务器 :一般来说,服务器应该运行在高性能计算机上,

10、对硬件、硬盘空间、网络带宽等有较高的要求,这在资金方面负担较重。当然,对于我们开发的小游戏来说,没有那么高的要求。有几点局限性:服务器连接速度在很大程度上决定了游戏质量的好坏;客户端连接速度也往往会影响游戏的顺利进行带宽。 具体游戏: 我们来看看这个游戏“无线赛车”游戏:你可以驾驶一辆无线电控制的赛车在赛道上环绕,另外还可以有5个人参加进来,这个游戏最大允许人数是6个。第一个进入游戏的人是指挥官,他有权让其他玩家回到起跑线,让游戏重新开始,这时在屏幕的中央会有倒计数的秒显示。在比赛中可能会出现燃料用完的情况,这时,玩家必须把车开到加油站加油。 赛道所在的比赛主游戏区域见下图:工具栏,其中包含一

11、些关键项目:速度表、油表、圈数计数器、聊天对话框、指挥官对话框 游戏的控制: 这个游戏使用方向键进行控制,非常直观。赛车的运动通过速度/角度的方法实现,玩家的速度和角度转化为X和Y轴的速度。这种转化也叫极坐标向直角坐标转化,变换的公式很简单,对于每辆赛车都有下面的代码:dx=vel*Math.sin(ang);dy=vel*Math.cos(ang); Y Xdx dyang V 当然,要确定具体的量,需要对vel和ang进行控制:maxspeed=12;/Move if keys are pressedif(key_Up) vel+=1;if(key_Down) vel-=1;if(key_

12、Leftif(key_Right/The effect of Physicsif(velmaxspeed) vel=maxspeed;if(vel-4) vel=-4; 可以看出,ang 和vel使用方向键控制的,然后用他们来计算dx和dy。最后我们在每个桢中对赛车的当前位置加入dx和dy值:_x+=dx;_y+=dy; 碰撞 游戏中有三种形式的碰撞:1.汽车和草坪的碰撞2.汽车和障碍物之间的碰撞3.汽车和汽车之间的碰撞 汽车和草坪的碰撞 汽车和障碍物之间的碰撞 汽车和汽车之间的碰撞 阴影 节点 用节点判断汽车是否完成整圈的赛程 多辆汽车 本机的键盘智能控制自己的一辆赛车,其他玩家的赛车是通过

13、其他玩家计算机发送给服务器再转发过来的数据包里的键盘信息控制的 游戏中的数据包和通信 客户端响应事件:1.登录2.按键的状态3.碰撞4.汽油耗尽5.断开连接6.聊天消息7.重新开始游戏 客户端数据包普通位置数据包登录数据包聊天数据包重新开始数据包 游戏中的数据包和通信 服务器响应事件:1.有玩家登陆游戏2.有玩家断开连接3.其他玩家运动或碰撞4.聊天消息 服务器数据包客户端位置数据包连接ID数据包断开连接数据包聊天数据包重新开始数据包 套接字对象 登录和连接 Connect按钮代码 Play Local代码汽车控制的完全代码 Connect按钮代码 Play Local代码 汽车控制的完全代码 速度和油量指示 KeyChange 同步

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!