快速业务通道

Flash MX 编程深层次应用-网络连线游戏(2)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

7.2 游戏区(1)
???? 游戏区其实就相当于一个游戏棋室的功能,从图7-4中可以看出屏幕上放了一些游戏桌,桌的形状如图7-5所示,用简单的线条与不同色的棋子来标志一个棋盘。在棋盘的下面有一个编号,用来区别不同的棋局。
图7-5 7.2.1? 棋手的坐下与起立 既然有棋桌,那么棋手就可以坐下与起立,而且把左边与右边分开处理,左边的变量名叫player_left,右边的变量名叫player_right。如果有人坐在左边就在左边显示一个小人,表示已经有人坐了,同理如果有人坐在右边就显示另一个小人。两个小人的样式如图7-6所示。 图7-6 1.检测玩家 首先先让这两个小人全部隐藏,然后在检查到名字变量不为空时就显示小人。 左边小人的程序 onClipEvent (enterFrame) { if(_parent.trim(_parent.player_left)!=""&&_parent.trim(_parent.player_left)!=null) { ??? this.gotoAndStop (2); } else { ??? this.gotoAndStop (1); } } 右边小人的程序 onClipEvent (enterFrame) { if (_parent.trim(_parent.player_right)!=""&& _parent.trim(_parent.player_right)!=null) { ??? this.gotoAndStop (2); } else { ??? this.gotoAndStop (1); } } 一张棋盘在源文件中的排列如图7-7所示。 图7-7 左边的那个文本框是player_left,右边的是player_right,中间的是table_no。虽然两个小人平时并不显示出来,但是却得让它们在相应的位置有按钮可以按,这样才可以保证玩家可以方便地坐在棋盘边。于是制作了一个仅有激活区域的空白按钮,也就是读者所看到的浅色的小方块,这个小方块仅仅显示出激活区域,在实际运行时不会显示。当然,这两个按钮还得有它们的程序。 左侧按钮 左边按钮的代码: on (release) { ??? if (player_left ==_root.nickname || trim(player_left) == "" || player_left == null) { ???????????? var chatXML; ???????????? var m_Message; ???????????? chatXML = new XML(); ?????? //求出我在100盘棋中正处于哪一盘 ???????????? var place = Number(this._name.substring(6)); ???????????? place += _parent.table_begin-1; ???????????? sit_table = "Table_"+place; ?????? //向后台发出一个坐下指令 ???????????? m_Message = chatXML.createElement("CMD"); ???????????? m_Message.attributes.VALUE = "SIT"; ???????????? if (player_left == _root.nickname) { ????????????????????? // 如果已经坐在该位置的话,就意味着自己要起立 ????????????????????? _root.player_left[place] = player_left=""; ????????????????????? _root.myself.PlayStatus = "StandUp"; ?????????? //起立用stand_up表示 ????????????????????? m_Message.attributes.PARAM = place+" stand_up "+_root.nickname; ???????????? } else if ((trim(player_left) == "" || player_left == null) && _root.myself.PlayStatus != "SitDown") { ????????????????????? _root.player_left[place] = player_left=_root.nickname; ????????????????????? _root.myself.PlayStatus = "SitDown"; ????????????????????? _root.now_sit_table = place; ????????? //如果是坐下就用left表示坐在左边,right坐在右边 ????????????????????? m_Message.attributes.PARAM = place+" left "+player_left; ???????????? } ???????????? //不管自己是坐下还是起立,都要发条信息给后台,并由后台进行广播 ???????????? chatXML.appendChild(m_Message); ???????????? trace (chatXML.toString()); ???????????? // send it!!! ???????????? if (_root.now_sit_table == place && player_right != _r

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号