1、 XXXX 课程设计说明书 题目 棒打猪头网页游戏 系 ( 部 ) 计算机科学与技术 专业 ( 班级 ) 姓名 学号 指导教师 起止日期 课程设计任务书 课程名称:综合实训 设计题目:网页游戏或手机游戏设计与开发 已知技术参数和设计要求: 1. 问题描述 (功能要求): 、棒打猪头网页游戏 游戏的设计采用客户机 /服务器模式的游戏,游戏在客户端采用 Java 小应用程序(即 Java Applet)技术进行开发,并将其嵌套在 HTML 中进行部署,用户只需访问 WEB 页面就可以进入游戏。在服务器端开发采用 Java 应用程序开发一个小的监视窗口,对客户端实时监控。开发中采用面向对象技术,通过
2、类的编写来简化开发的难度。 开发的游戏是一个两人同时在线进行在线的竞技游戏 -棒打猪头,通过对游戏的开发了解网络游戏框架的开发模型。 游戏的主要功能如下; 1 玩家访问 web 页面,同时下载 java 字节码文件。程序进入下载相关图片,当图片下载完成时,游戏程序进入就绪状态,并向服务器程序登记。 2 玩家可选择开始时,游戏开始。游戏程序进入开始状态,玩家即开始棒打猪头游戏。 3 游戏中的棒由玩家的鼠标控制,即玩家的鼠标进入 web 页面的游戏区时鼠标光标变成玩家的棒。 4 游戏中的猪头的出现频率有一个随机数控制,当被玩家的棒击中时猪头消失,玩家得分,并将此信息传递给服务器程序,由服务器程序将
3、其转发给另一玩家。 5 同时,程序启动网络侦听程序,接受服务器上传来的另一玩家的实时信息,并将其打印在本地玩家的 web 页面的规定位置。 6 服务器监听程序,主要登记玩家的网络标示,并实时转发玩家的信息给对手。 7 当其中一玩家退出游戏时将其信息传递给服务器监听程序,则由服务器监听程序分 析后,将结束游戏的信息转发给另一方,游戏结束。 、基于 OpenGL ES 实现 3D 场景渲染,要求如下: 3D 场景渲染一: 1. 渲染一座房子和一个太阳,房子包括三个图元:屋身、屋顶、烟囱,以及房子所在的地平面(灰度图地形),并实现天空盒与天空穹。 2. 光源要求:设计一个方向光源表示太阳; 3. 纹
4、理要求:为屋身、屋顶分别贴上砖、瓦的纹理,房子前面的地贴上绿草地的纹理,并设置缩放时用到的过滤器; 4. 材质要求:为屋身、屋顶、烟囱设置合适的材质; 5. 动画要求:实现二种动画,包括: 太阳静止,而房子绕 Y轴缓慢旋转; 房子静止,太阳模 拟从早到晚的状态,东边升起,西边降落; 3D 场景渲染二: 1. 渲染一个室内场景,包括:四面墙、地面及屋顶,一个吊灯,更复杂的情况可以加一扇窗户。 2. 光源要求:吊灯为点光源,设置光源颜色参数,开始时光源的漫反射、镜面反射、环境3. 光均为白色,强度自由设置。要求有一个塑料或其它材质的灯罩; 4. 纹理要求:为墙、地面及屋顶设置适合的纹理,设置过滤器
5、; 5. 材质要求:为墙、地面及屋顶设置适合的材质,特别是吊灯的灯罩,设置不同的材质使用户感觉灯罩是用不同的材料制作的; 6. 动画要求:首先将摄像机定位于房子的内部,摄像机绕 Y轴缓慢旋转形成 动画; 、小鸟爆破手机游戏:学习 cocos2d-x 游戏引擎,参照一个现成流行的手机游戏来开发一个 android手机游戏,通过完成 Android 手游的设计与实现,帮助学生更好地理论联系实际,巩固已经学到的知识,培养学生的动手编程能力、独立的思考能力和创新能力。 1.精灵封装。精灵类封装,继承 CCSprite,精灵的属性 id 等 ,精灵的行为 即精灵 Action,精灵的人工智能 碰撞检测,
6、自动寻路等 。 2.层 CCLayer。将精灵添加到层中,层添加先后的控制, label 的添加 添加到 label 上的精灵 执行各自动画的同时可以执行另外一相同动画 。 3.场景 CCScene。最终的实现界面,将层添加到场景。 4.资源的加载与释放,应该在 loading 的时候加载下一个场景的资源,加载完毕后,绘制层,初始化场景。场景切换可对资源进行释放。可以写在析构函数中。场景切换, replaceScene(CC scene),pushScene(CCScene),popScene()只有使用 push 出来的场景才能进行 pop 切出 . 5. 多线程的运行与控制。 cocos2
7、d-x 中采用时间调度函数this-schedule(schedule_selector(类 :方法 ),间隔时间 );。 6.多动画的控制,执行 A 动画后执行 B 动画,或者执行 A 动画去做 C 事件。 7.游戏音乐控制与基本数据存储。应将游戏音乐是否播放保存在游戏生成的 xml 文件中。 8,算法与数据结构,保证游戏运行尽可能顺畅。 2. 运行环境要求: ( 1)客户端: Windows 操作系统 IE 浏览器 ( 2)服务器: windows server 版操作系统 Tomcat web 服务器 3. 技术要求: 1) 需求分析规格说明书与用例规约; 2) 系统设计,时序 图,类图
8、; 3) 系统完整编码; 设计工作量: 四周 工作计划: (1) XXXX 级软件工程 XX 班 40 课时:知识学习 36 课时:上机编码 4 课时:答辩。计算机系机房。 (具体时间地点老师先申请,机动安排) 指导教师 签名: 日期: 教研室主任 签名: 日期: 系主任签名: 日期: XXXX 课程设计鉴定表 姓名 学号 专业 软件工程 班级 设计题 目 棒打猪头网页游戏 指导教师 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级: 答辩小组长签名: 日期: 教研室意见: 教研室主任签名: 日期: 系(部)意见: 系主任签名: 日期: 说明 课程设计成绩分“优秀”、“
9、良好”、“及格”、“不及格”四类; 摘要 本软件是 要运用 java 语言开发一款网页版的棒打猪头游戏,该游戏可以实现多个玩家联机玩。实现网页版游戏首先需要实现单机版游戏,在单机版的基础上添加基于连接的 Socket 通信。单机版的实现主要需要四个类的实现,主类、锤子精灵类,猪头精灵类和锤子、猪头的父类。在锤子精灵和猪头精灵类中分别实现了对各自对象的绘制和一些基本的操作。猪头精灵类还涉及随机出现、碰撞检测的算法。主类实现了鼠标接口、鼠标移动接口和线程接口,对这些接口的每个抽象方法进行具体实现。在鼠标按下方法中实现锤子状态、猪头状态的变化和碰撞检测。在鼠标抬起方法中实 现锤子状态的变化。鼠标移动
10、中实现因鼠标的位置而设置锤子的位置。在线程的 run()方法中控制猪头的随机出现。经过以上步骤单机版基本完成,下面是网页版实现的步骤。网页版的实现第一步需要实现客户端和服务器端的连接,在服务器端生成 ServerSocket 对象在特定的端口实现监听服务,等待客户端的请求,客户端在特定端口创建 Socket 对象向服务器端创建连接,服务器端接收客户端的请求用返回的 Socket 建立连接。第二步把鼠标按下、鼠标抬起、鼠标移到的信息进行封装发送给服务器端,服务器端经过接收到客户端发来的信息,再进行 解码把信息发回给另一个客户端。另一个客户端接收到信息后进行解码,做相应的操作来驱动另一个锤子的运动
11、。经过以上步骤最终实现的功能有 :自己这一方可以把信息发送给服务器端,服务器端可以把信息返回给对方,对方可以接收服务器端的发来的信息但是不能驱动锤子运动。 关键词: Socket,鼠标接口、鼠标移动接口、线程接、 ServerSocket、解码 目录 1 设计内容与要求 . 1 2 游戏设计的需求分析 . 2 2.1 功能需求 . 2 2.2 数据需求 . 3 2.3 性能需求 . 4 3 游戏系统 概要 设计 . 5 3.1 游戏数据设计 . 5 3.2 游戏 结构设计 . 5 3.3 游戏功能模块 设计 . 6 3.4 游戏流程图 . 9 4 游戏系统详细设计 . 11 4.1 设计说明
12、.11 4.2 类图 .12 4.3 时序图 .13 4.4 编码实现 .13 5 结论 . 16 参考文献 . 17 长 沙 学 院 1 百手起驾 整理为您 1 设计内容与要求 用 java 语言实现网页版棒打猪头游戏。客户端采用 java Applet 技术,服务器端要有服务器监听窗口和服务器端 Socket 窗口,服务器端和客户端相互通信。控制鼠标来控制玩家的锤子状态,最少出现九个猪头,猪头随机出现,各方玩家的猪头、锤子都要实现同步出现,有计分功能,点击按钮断开客户端与服务器端的连接,服务器不能在接收到客户端的信息。 长 沙 学 院 2 百手起驾 整理为您 2 游戏设计的需求分析 2.1
13、 功能需求 我们设计的游戏是采用客户机 /服务器模式的游戏,游戏在客户端采用就阿 Java 小应用程序(即: Java Applet)技术进行开发 ,并将其嵌套在 HTML 中进行部署,用户只需访问我们的 WEB 页面就可以进入游戏。在服务器端我们开发采用 Java 应用程序开发一个小的监视窗口,对客户端采用实时监控。我们在开发中采用面向对象技术,通过类的编写来简化开发的难度。 开发的游戏是一个两人同时在线进行在线的竞技游戏 -棒打猪头,通过对游戏的开发了解网络游戏框架的开发模型。 游戏的主要功能如下; 1 玩家访问 web 页面,同时下载 java 字节码文件。程序进入下载相关图片,当图片下
14、载完成时,游戏程序进入就绪状态,并向服务器程序登记。 2 玩家可选择 开始时,游戏开始。游戏程序进入开始状态,玩家即开始棒打猪头游戏。 3 游戏中的棒由玩家的鼠标控制,即玩家的鼠标进入 web 页面的游戏区时鼠标光标变成玩家的棒。 4 游戏中的猪头的出现频率有一个随机数控制,当被玩家的棒击中时猪头消失,玩家得分,并将此信息传递给服务器程序,由服务器程序将其转发给另一玩家。 5 同时,程序启动网络侦听程序,接受服务器上传来的另一玩家的实时信息,并将其打印在本地玩家的 web 页面的规定位置。 6 服务器监听程序,主要登记玩家的网络标示,并实时转发玩家的信息给对手。 7 当其中 一玩家退出游戏时将
15、其信息传递给服务器监听程序,则由服务器监听程序分析后,将结束游戏的信息转发给另一方,游戏结束。流程图如下: 长 沙 学 院 3 百手起驾 整理为您 玩 家 访 问 w e b 页 面获 取 本 地 网 络 标 示 信 息服 务 器 监 听 程 序驻 留 在 服 务 器 端服 务 器启 动 启 动 失 败NYY下 载 J a v a 字 节 码 文 件 及 相 关 必 须文 件Y退 出NT C P 连 接开始游戏T C P 连 接游 戏 结 束图 2.1 流程图 2.2 数据需求 在网络游戏中,数据非常重要,它直接影响游戏的生命,关乎设计的成败,特别是在竞技的网络游戏中就更为突出了,它直接关系到
16、游戏的实时性和交互能力,在网络游戏中,数据的传输依赖于网络环境,在 Internet 环境下,其影响的因素很多,如网络带宽、网络延时、传输中的数据安全等等,也存在很多的不确定因 素,比如有的玩家网络环境好一些,有些就差点。这些情况对于游戏设计者来说没有办法去改变,它已经成为了一种短时期内无法解决瓶颈问题挡在了我们的面前,我们能够改变和决定的只有我们在游戏来传输的数据,因此在网络游戏中,设计高效率的数据格式和结构就尤为重要了。 为了高效的利用有限的网络带宽,我们一般只在网络上传输简单的二进制代码用以减轻网络负载,提高传输效率和质量。我们在设计游戏时就采用了自己编写通信协议的方法来解决网络瓶颈。 数据流图如下;