Flash网络编程.ppt

上传人:牧羊曲112 文档编号:5431068 上传时间:2023-07-06 格式:PPT 页数:42 大小:408.50KB
返回 下载 相关 举报
Flash网络编程.ppt_第1页
第1页 / 共42页
Flash网络编程.ppt_第2页
第2页 / 共42页
Flash网络编程.ppt_第3页
第3页 / 共42页
Flash网络编程.ppt_第4页
第4页 / 共42页
Flash网络编程.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Flash网络编程.ppt》由会员分享,可在线阅读,更多相关《Flash网络编程.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:超文本传输协议(HT

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

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

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

7、ccess)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 players location,Player number

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

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

11、进行控制,非常直观。赛车的运动通过速度/角度的方法实现,玩家的速度和角度转化为X和Y轴的速度。这种转化也叫极坐标向直角坐标转化,变换的公式很简单,对于每辆赛车都有下面的代码:dx=vel*Math.sin(ang);dy=vel*Math.cos(ang);,Y,X,dx,dy,ang,V,当然,要确定具体的量,需要对vel和ang进行控制:maxspeed=12;/Move if keys are pressedif(key_Up)vel+=1;if(key_Down)vel-=1;if(key_Left,可以看出,ang 和vel使用方向键控制的,然后用他们来计算dx和dy。最后我们在每个

12、桢中对赛车的当前位置加入dx和dy值:_x+=dx;_y+=dy;,碰撞,游戏中有三种形式的碰撞:汽车和草坪的碰撞汽车和障碍物之间的碰撞汽车和汽车之间的碰撞,汽车和草坪的碰撞,汽车和障碍物之间的碰撞,汽车和汽车之间的碰撞,阴影,节点,用节点判断汽车是否完成整圈的赛程,多辆汽车,本机的键盘智能控制自己的一辆赛车,其他玩家的赛车是通过其他玩家计算机发送给服务器再转发过来的数据包里的键盘信息控制的,游戏中的数据包和通信,客户端响应事件:登录按键的状态碰撞汽油耗尽断开连接聊天消息重新开始游戏,客户端数据包,普通位置数据包登录数据包聊天数据包重新开始数据包,游戏中的数据包和通信,服务器响应事件:有玩家登陆游戏有玩家断开连接其他玩家运动或碰撞聊天消息,服务器数据包,客户端位置数据包连接ID数据包断开连接数据包聊天数据包重新开始数据包,套接字对象,登录和连接,Connect按钮代码Play Local代码汽车控制的完全代码,Connect按钮代码,Play Local代码,汽车控制的完全代码,速度和油量指示KeyChange,同步,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号