打飞机小游戏Java优秀课程设计.docx
《打飞机小游戏Java优秀课程设计.docx》由会员分享,可在线阅读,更多相关《打飞机小游戏Java优秀课程设计.docx(56页珍藏版)》请在咨信网上搜索。
1、四 川 理 工 学 院课 程 设 计 书学院 计算机学院 专业 计算机科学和技术 班级 计科级 题目 打飞机小游戏 老师 王非 学生 雷元刚 张柯 摘 要伴随Java语言兴起,越来越多平台开始使用java语言编写程序,即使不及C语言高效,不过Java拥有平台无关性是其它平台所不能企及。几乎全部银行系统全部是利用Java来编写,关键是因为其安全性较高。Java技术含有卓越通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大开发者专业社群。而利用Java编写图形化界面也是比较轻易,因为其有专门框架和界面,这么使得几行代码就能够
2、创建一个图形化界面了。而此次要编写打飞机小游戏,反复利用了图形化界面知识,多线程,重画,添加监听器等。锻炼了我们实践编写界面代码能力,提升了我们对于图形化界面编程了解和利用多种容器和组件来实现我们所需要界面。关键词:打飞机,多线程,重画,图形化 目 录第一章 前言11.1开发背景11.1.1开发环境2第二章 需求分析22.1 开发目的22.2 系统需求分析22.3 系统性能分析22.4 系统模块分析3第三章 数据库设计43.1 数据库概述43.2数据库设计4第四章 详细设计64.1 游戏概要64.2类的详细设计64.2.1 MyPlane类64.2.2 Bullet74.2.3 EnemyBu
3、llet84.2.4 EnemyPlane84.2.5 Explode104.2.6 PlayMusic114.2.7 GameBox114.2.8 DB134.2.9 StartFrame13第五章 测试15第六章 小结19致 谢20参考文献21附 录22第一章 序言伴随网络不停发展,在中国网民数量越来越多。大家也对于互联网所能提供功效有了一定要求,比如能够在线观看视频,在线游戏,大数据服务。互联网经过短短几十年发展,相比起当初,已经发生了翻天覆地改变。而游对于互联网发展也有着一定推进作用。SQL Server是现在应用比较广泛关系型数据库标准语言之一。现在,SQL已成为国际标准语言,多种类
4、型计算机和DBS全部采取SQL作为其存取语言和标准接口,从而使数据库世界有可能链接为一个统一整体。Microsoft Office Access是由微软公布关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 系统程序之一。对于广大用户而言,Access数据库操作简便,和Office一起安装,所以也有广泛通用性。以数据库技术作为后台可视化应用也越来越受到大家喜爱,Java是现在应用比较流行可视化编程软件之一。它功效强大,系统自带代码较为齐,轻易操作,受到很多用户喜爱。Java开发游戏也是比较轻易,
5、对于广大网民和学生,在工作之余能够玩玩游戏也是一个不错选择休闲方法,而且伴伴随网络普及化,越来越多大家开始加入到游戏大军中来,所以开发一款适合游戏显尤为关键。1.1开发背景游戏自古以来就有,以前象棋,围棋,到现在军旗,跳跳棋。毫不夸张说,游戏是人类智慧结晶,是我们休闲娱乐一个方法。数据库技术产生于20世纪60年代末70年代初,其关键目标是有效地管理和存取大量数据资源.数据库技术关键研究怎样存放,使用和管理数据. 数年来,数据库技术和计算机网络技术发展相互渗透,相互促进,已成为当今计算机领域发展快速,应用广泛两大领域.数据库技术不仅应用于事务处理,而且深入应用到情报检索,人工智能,教授系统,计算
6、机辅助设计等领域.游戏加入数据库技术,能够在一定程度上减轻服务器负担,提升服务器负载能力。有利用实现愈加好用户体验和数据离线保留,有利于对于游戏数据分析和处理。在大数据时代,对于数据分析和处理显愈加关键。1.1.1开发环境Windos系统,JDK1.8,jre7,Access数据库,Mysql数据库,Eclipse MARS软件一套。1.2游戏功效介绍本游戏能够实现游戏和音乐同时播放,当飞机被摧毁是还有特殊音效。加入了游戏数据保留到当地数据库功效,能够保留在MYSQL和ACCESS中,满足多种环境下需求。第二章 需求分析2.1 开发目标打飞机游戏,是我们儿时在游戏厅中常常玩游戏。它能勾起我们对
7、于儿时种种美好回想,而游戏本身难度适中,能够提升我们对于这种游戏编写能力和逻辑思维能力。打飞机游戏也需要多线程支持,而Java对于多线程支持程度是比很好。2.2 系统需求分析 1、功效需求对于游戏结果统计,判定是否有子弹击中飞机,判定是否2架飞机相撞。2、可靠性可用性需求能够在在程序异常时候提醒,在断电情况下自动保留游戏数据。3、犯错处理需求当游戏犯错是,能够弹出一个对话框来提醒用户。4、游戏数据处理对于生成游戏数据,能够存入数据库不一样字段中。能够统计游戏数据插入数据库中时间。2.3 系统性能分析为了确保系统能够长久、安全、稳定、可靠、高效地运行,本系统应该满足以下性能需求。(1) 正确性和
8、立即性程序采取是坐标定位方法,对于碰撞检测还是比较全方面,能够在一定范围内检测,并提供了飞机碰撞检测和子弹碰撞检测这2种不一样检测方法。(2) 易用性 因为采取2套数据库,能够确保数据部分通用性,而java又是和平台无关性,全部能够确保程序易用性。(3)安全性将游戏数据放入数据库中,能够增加数据安全性,需要程序在连接数据库时候输入密码。2.4 系统模块分析1、子弹模块:(1) 用来管理自己飞机所需要发出子弹,放在BulletlistList类型数组中。并提供了draw()函数,用来画出不一样位置子弹并利用重画功效,实现子弹移动。(2) 敌机子弹功效,也是对应重画功效,并能够经过EnemyBul
9、let()功效初始化敌机子弹位置。经过isLive()判读子弹是否有效。getY(),getX()获取子弹横坐标和纵坐标,为碰撞检测提供依据。2、飞机模块:(1)敌机管理拥有1号级和2号级,并经过随机函数来调用不一样敌机出现在画面中。draw()能够实现对于飞机重画,实现敌机下落功效。(2)我机管理 我机也包含初始化X方向和Y方向上速度,并设置dl,du,dr,dd为false。并添加了键盘监听器,能够对键盘按钮做出响应,按下w,a,s,d分别对应是飞机向上左下右移动。(3)数据管理对用户信息和数据进行存入数据库操作,和经过数据库调用用户数据。第三章 数据库设计3.1 数据库概述 数据库是整个
10、系统关键,它设计直接关系系统实施效率和系统稳定性。所以在软件系统开发中,数据库设计应遵照必需数据库范式理论,以降低冗余、确保数据完整性和正确性。只有在适宜数据库产品上设计出合理数据库模型,才能降低整个系统编程和维护难度,提升系统实际运行效率。3.2数据库设计(1)分数数据表 如表3.1表3.1分数数据表 字段名数据类型宽度是否为空说明User_Namevarchar10不许可为空统计者IDUser_Scorevarchar10不许可为空统计者成绩(2)数据库管理软件采取Mysql或Acess,经过这两款软件来管理程序中需要存放管理数据,而且能够加强我们数据库思维,为以后开发打好基础。数据库具体
11、代码设计以下:package Tools;public class DB private String url=jdbc:mysql:/localhost:3306/plane;private String driver=com.mysql.jdbc.Driver;private Connection conn;private Statement stmt;public DB()try Class.forName(driver);conn=DriverManager.getConnection(url,root,123);stmt=conn.createStatement();System.o
12、ut.println(数据库连接成功.); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();public boolean excuteWrite(String name,String score)String sql=insert into score values(+name+,+score+);try int result=stmt.executeUpdate(sql);System.out.println(Insert:+result);ret
13、urn true; catch (SQLException e) e.printStackTrace();return false;public String excuteRead()String sql=select * from score;String name=,score=;StringBuffer end=new StringBuffer();try ResultSet result=stmt.executeQuery(sql);while(result.next()name=result.getString(1);score=result.getString(2);end.app
14、end(name+t+score+n); catch (SQLException e) e.printStackTrace();return (null=end) ? -: end.toString();第四章 具体设计4.1 游戏概要 程序开启后,进入游戏界面,用户就能够进行游戏了。本游戏采取简便操作,保留了大部分人按键习惯。不仅能够用VK_UP、VK_DOWN、VK_RIGHT、VK_LEFT等按键来进行操作,还能够使用游戏中常见W、A、S、D等按键来进行上下左右操作。而且采取数据库MySql和Acess能够对用户成绩进行保留,方便用户查看成绩统计。4.1.1 游戏运行界面 4.1.2 分
15、数查看界面4.2类具体设计4.2.1 MyPlane类1UML类图2. 具体分析(1) 组员变量l x,y是int类型变量,用来统计我方战机目前位置,进行位图绘制。l du,dd,dr,dl是boolean类型变量,用来判定我方战机正在向那一个方向行进,一直按下某一个方向,将会向那个方向一直行进,直到边界。l MYPLANE_XSPEED, MYPLANE_YSPEED是int类型变量,作用是控制我方战机横向和纵向运行速度,确保一定速率移动。l live是boolean类型变量,作用是判定我方战机是否死亡。(2) 组员方法l MyPlane(int x,int y)结构函数,初始化我方战位置,
16、使之居于中央。l draw(Graphics g)绘图方法,我方战机位置改变时重新绘制。l keyPressed(KeyEvent e)按键方法,键盘上按下对应键码进行对应移动。l keyReleased(KeyEvent e)按键释放方法,按键释放使之不再移动。l move()战机移动方法,键按下后进行移动。l getX()取得战机横向位置。l getY()取得战机纵向位置。l isLive()战机是否存活。l setLive(boolean live)设置飞机存活状态。4.2.2 Bullet1UML类图2. 具体分析(1) 组员变量l BULLET_SPEED为int类型变量,初始为15
17、.战机发射子弹速率。l x,y为int类型变量,统计子弹位置。l live为boolean类型变量,判定子弹是否为有效状态。l bullet为Image类型变量,加载子弹类图。(2) 组员方法l Bullet(int x,int y)结构方法,子弹位图绘制位置。l draw(Graphics g)绘制子弹位图方法。l isLive()判定子弹是否为有效状态。l setLive(boolean live)设置子弹是否有效。l getX(),getY()取得子弹位置坐标。4.2.3 EnemyBullet1UML类图2. 具体分析(1) 组员变量l x,y为int类型变量,统计敌机位置坐标。l b
18、ulletspeed为int类型变量,初始值为15,用来设置子弹速度变量。l live为boolean类型变量,判定子弹是否为有效状态。l enemyplanebullet为Image类型变量,敌机子弹所加载位图。(2) 组员方法l EnemyBullet(int x,int y)结构方法,初始敌机子弹位置。l draw(Graphics g)绘制敌机子弹方法,用来重新绘制。l isLive()敌机子弹是否为存活状态。l setLive(boolean live)设置子弹状态。l getX(),getY()获取敌机子弹坐标,用来重新绘制。4.2.4 EnemyPlane1UML类图2. 具体分
19、析(1) 组员变量l xpeed为敌机横向运动速度。l yspeed这敌机纵向运动速度。l live为boolean类型变量,用来设置和判定敌机是否存活。l fired 为boolean类型变量,判定敌机是否为开火状态。l x,y为int类型变量,用来统计敌机位置。l enemy为 Image类型变量,用来加载敌机位图。l rand 为Random类型对象,用来产生随机数。(2) 组员方法l EnemyPlane(StartFrame sf)结构方法,用来初始化敌机。l draw(Graphics g)方法用来重新绘制敌机,重绘方法。l move()方法用来对敌机进行移动,移动方法。l get
20、x(),getY()方法用来获取敌机位置。l isLive()判定敌机是否为存活状态。l setLive(boolean live)设置敌机是否为存活。l getXpeed()得到敌机横向运动速度。l setXpeed(int xpeed)设置横向运动速度。l getYspeed()得到纵向运动速度。l setYspeed(int yspeed)设置纵向运动速度。l isFired()是否为开火状态。l setFired(boolean fired)设置开火状态。4.2.5 Explode1UML类图2. 具体分析(1) 组员变量l x,y为int类型变量,统计爆炸位置。l live 为boo
21、lean类型变量,判定爆炸状态。l Explode1为Image类型对象,用来加载爆炸位图。(2) 组员方法l Explode(int x,int y)结构方法,初始化爆炸位置及位图。l draw(Graphics g)绘制方法,用来绘制爆炸位图。l isLive()是否为存活状态。l setLive(boolean live)设置是否为存活状态。l getCount()得到爆炸次数。l setCount()设置爆炸次数。4.2.6 PlayMusic1UML类图2. 具体分析(1) 组员变量l musicFile为File类型对象,用来播放文件。l clip为 AudioClip类型对象,进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 小游戏 Java 优秀 课程设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。