泡泡堂网络游戏的设计
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1. 首先要先运行服务器端,来处理各个客户端发来的请求。
2. 玩家运行客户端,首先展现一个版权声明的界面,因为游戏中的图片来源于腾迅公司的QQ堂游戏,图片的版权归腾迅公司所有。
3. 几秒后自动跳到登录界面。在这里输入用户名称,密码。因系统中没有对数据库进行操作,并没有保存用户的相关信息,所以没有注册的功能,也没有对密码的正确与否进行验证。输入密码后点击登录进入游戏大厅,退出则关闭程序。
4. 进入大厅后,用户可以选择自己的角色,蓝队或者红队,并可以进行聊天对话。点击准备时将进入准备状态。当所有用户都进入准备状态,游戏自动进入对战场地进行对战游戏。
5. 在对战时,玩家可以用方向键盘控制人物的移动,人物只能在空地中移动,当遇到“箱子”时,可以使用“空格键”放置“泡泡”,利用“泡泡”的爆炸的威力去破坏周围的障碍物(“仙人掌”不能被破坏掉)。同时可以一连串放置多个“泡泡”,放置“泡泡”后,“泡泡”将持续几秒钟才会爆炸,在这段时间玩家可以放置更多的“泡泡”来攻击对手,在运动过程中还要及时躲开“泡泡”的爆炸区域。当玩家被“泡泡”炸中,则该玩家的生命将结束,不能继续进行游戏
6. 当有一个队中的所有玩家都死掉,则该队挑战失败,对方获胜。 [资料来源:www.THINK58.com]
模块设计 [资料来源:www.THINK58.com]
游戏客户端总体分为4个大的模块:游戏入口,登陆,游戏大厅,和对战场地。
游戏入口模块
主要类:Game.java
描述:显示一个无标题栏的窗口,提示一些版权信息
首先在它的构造方法中初始化该JFrame的相关属性。在main方法中,先声明一个Game类,创建声明窗口。之后调用Util方法中的showWindow()方法,显示该窗口的动态展开,产生一个动画的效果。窗口将停顿5秒,以便玩家有足够的时间来阅读相关内容。最后调用Util方法中的closeWindow()方法来动态地收缩关闭该窗口。随后创建一个Login类,并将其显示,进入登录模块,同时隐藏该声明信息窗口 。
登陆模块
主要类:Login.java
描述:显示登陆界面(效果请参考图9),并处理相关的鼠标动作,输入玩家名称,密码等,登陆后和服务器建立连接,并发送信息到服务器。(因为不设计到数据库,这里并没有对玩家输入的相关信息进行验证,也没有注册玩家信息的功能)
游戏大厅模块
主要类:GameHall.java
描述:游戏大厅的主界面,同时负责处理玩家一些鼠标事件,并和服务器进行通讯,发送/接受消息。当鼠标触发一些事件时候,对事件的内容进行解析,然后根据不同的事件,创建不同类型的消息,把相关的必要的信息进行封装,最后发给服务器。由服务器进行处理后,服务器发送消息给所有客户端,客户端接收到消息,并对接收到的消息进行处理,来改变大厅场景。 [资料来源:http://THINK58.com]
该类中设计到对整个大厅中鼠标和键盘事件的监听,并创建一个主的线程来监听从服务器端发来的消息。因此该类实现了MouseListener, MouseMotionListener, Runnable,KeyListener等接口。
构造方法中调用了init()方法 。初始化大厅用到的一些组件。整个大厅是一个ImagePanel,一个画布。所有的组件都是在这个画布上增加。并为这些组件增加一个监听器来监听它们的动作。之后程序启动主线程,对服务器发来的消息进行监听,并在解析后作出相应的动作。
聊天功能:
原理和小组选择相似,首先玩家在文本框中输入要发送的消息内容,当点击“发送”的图片按钮时,触发一个鼠标动作。监视器拦截该动作,并得到输入文本框中的信息,把它封装到一个消息里面Message。最后发往服务器 。服务器端只是把消息进行转发给所有玩家。玩家的客户端收到消息后,判断该消息的类型,如果是聊天消息,将聊天的内容提取,然后显示在聊天信息板里面。
准备/取消准备功能:
点击准备图片按钮,触发一个事件,然后封装生成一个消息发送到服务器,服务器转发。客户端收到消息后把该玩家的状态改为“准备”。之后判断是否所有玩家都已经准备好,如果都准备好,把全局变量Ready的数值设置为“OK”,然后在主线程里判断这个值从而得到是否所有玩家都已经准备好。都准备好的话就创建一个新的窗口进入对战区。
对战场地模块
主要类:QQPad.java
描述:这个类为游戏大厅的画布,同时处理对战时的主要逻辑,是整个游戏的核心。负责处理了玩家移动,泡泡的放置及引爆,障碍物的清除和胜负判断等多个功能。
当玩家进入大厅时,程序首先要初始化场景,包括对地图和玩家位置的初始化,并为场景增加监听器监听玩家键盘和鼠标的动作,之后启动一个主线程。该线程负责处理玩家的鼠标和键盘动作,并对从服务器端接收到的消息进行处理,从而改变当前的场景。当有一个小组的全部玩家都被消灭后,就判断胜负并显示结果,这次对战就结束,返回到游戏大厅。
[资料来源:http://think58.com]
下一篇:简单|初级的即时通讯工具