欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    打飞机小游戏Java课程设计报告书.doc

    • 资源ID:48819207       资源大小:660.54KB        全文页数:64页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    打飞机小游戏Java课程设计报告书.doc

    .四 川 理 工 学 院课 程 设 计 书学院 计算机学院 专业计算机科学与技术班级 计科2014级题目 打飞机小游戏 教师王非学生 雷元刚 柯 摘要随着Java语言的兴起,越来越多的平台开始使用java语言编写的程序,虽然不及C语言的高效,但是Java拥有的平台无关性是其他平台所不能企及的。几乎所有的银行系统都是运用Java来编写的,主要是因为其安全性较高。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动和互联网,同时拥有全球最大的开发者专业社群。而运用Java编写图形化界面也是比较容易的,因为其有专门的框架和界面,这样使得几行代码就可以创建一个图形化界面了。而本次要编写的打飞机小游戏,重复运用了图形化界面的知识,多线程,重画,添加监听器等。锻炼了我们实践编写界面代码的能力,提高了我们对于图形化界面编程的理解和运用各种容器和组件来实现我们所需要的界面。关键词:打飞机,多线程,重画,图形化目录第一章前言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 EnemyBullet84.2.4 EnemyPlane84.2.5 Explode104.2.6 PlayMusic114.2.7 GameBox114.2.8 DB134.2.9 StartFrame13第五章测试15第六章小结19致20参考文献21附录2261 / 64第一章 前言随着网络的不断发展,在中国网民的数量越来越多。人们也对于互联网所能提供的功能有了一定的要求,比如能够在线观看视频,在线游戏,大数据服务。互联网经过短短几十年的发展,相比起当初,已经发生了翻天覆地的变化。而游对于互联网的发展也有着一定的推动作用。SQL Server是目前应用比较广泛的关系型数据库标准语言之一。现在,SQL已成为国际标准语言,各种类型的计算机和DBS都采用SQL作为其存取语言和标准接口,从而使数据库世界有可能为一个统一的整体。Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。对于广大用户而言,Access数据库的操作简便,和Office一起安装的,所以也有广泛的通用性。以数据库技术作为后台的可视化应用也越来越受到人们的喜爱,Java是目前应用比较流行的可视化编程软件之一。它的功能强大,系统自带的代码较为齐,容易操作,受到很多用户的喜欢。Java开发游戏也是比较容易的,对于广大的网民和学生,在工作之余能够玩玩游戏也是一种不错的选择的休闲的方式,并且伴随着网络的普及化,越来越多的人们开始加入到游戏的大军中来,所以开发一款适合的游戏显的尤为重要。1.1开发背景游戏自古以来就有,以前的象棋,围棋,到现在的军旗,跳跳棋。毫不夸的说,游戏是人类智慧的结晶,是我们休闲娱乐的一种方式。数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理和存取大量的数据资源.数据库技术主要研究如何存储,使用和管理数据. 数年来,数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域.游戏加入数据库技术,能够在一定程度上减轻服务器的负担,提高服务器的负载能力。有利用实现更好的用户体验和数据的离线保存,有助于对于游戏数据的分析和处理。在大数据时代,对于数据的分析和处理显的更加重要。1.1.1开发环境Windos系统,JDK1.8,jre7,Access数据库,Mysql数据库,Eclipse MARS软件一套。1.2游戏功能简介本游戏能够实现游戏和音乐同步播放,当飞机被摧毁是还有特殊音效。加入了游戏数据保存到本地数据库的功能,能够保存在MYSQL以及ACCESS中,满足各种环境下的需求。第二章 需求分析2.1 开发目的打飞机游戏,是我们儿时在游戏厅中经常玩的游戏。它能勾起我们对于儿时的种种美好的回忆,而游戏本身难度适中,能够提升我们对于这种游戏的编写能力和逻辑思维能力。打飞机游戏也需要多线程的支持,而Java对于多线程的支持程度是比较好的的。2.2 系统需求分析 1、功能需求对于游戏结果的记录,判断是否有子弹击中飞机,判断是否2架飞机相撞。2、可靠性可用性需求能够在在程序异常的时候提示,在断电的情况下自动保存游戏数据。3、出错处理需求当游戏出错是,能够弹出一个对话框来提醒用户。4、游戏数据的处理对于生成的游戏数据,能够存入数据库的不同字段中。能够记录游戏数据插入数据库中的时间。2.3 系统性能分析为了保证系统能够长期、安全、稳定、可靠、高效地运行,本系统应该满足以下的性能需求。(1) 准确性和及时性程序采用的是坐标定位的方式,对于碰撞检测还是比较全面,能够在一定的围检测,并提供了飞机碰撞检测和子弹碰撞检测这2种不同的检测方式。(2) 易用性 由于采用的2套数据库,能够保证数据部分的通用性,而java又是与平台无关性的,所有能够保证程序的易用性。(3)安全性将游戏的数据放入数据库中,能够增加数据的安全性,需要程序在连接数据库的时候输入密码。2.4 系统模块分析1、子弹模块:(1) 用来管理自己的飞机所需要发出的子弹,放在Bulletlist的List类型的数组中。并提供了draw()函数,用来画出不同位置的子弹并利用重画功能,实现子弹的移动。(2) 敌机子弹功能,也是相应的重画功能,并能够通过EnemyBullet()功能初始化敌机子弹的位置。通过isLive()判读子弹是否有效。getY(),getX()获取子弹的横坐标和纵坐标,为碰撞检测提供依据。2、飞机模块:(1)敌机管理拥有1号级和2号级,并通过随机函数来调用不同的敌机出现在画面中。draw()能够实现对于飞机的重画,实现敌机的下落功能。(2)我机管理 我机也包含初始化的X方向和Y方向上的速度,并设置dl,du,dr,dd为false。并添加了键盘监听器,能够对键盘的按钮做出响应,按下w,a,s,d分别对应的是飞机向上左下右移动。(3)数据管理对用户的信息和数据进行存入数据库的操作,和通过数据库调用用户数据。第三章 数据库设计3.1 数据库概述 数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库式理论,以减少冗余、保证数据的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。3.2数据库设计(1)分数数据表 如表3.1表3.1分数数据表字段名数据类型宽度是否为空说明User_Namevarchar10不允许为空记录者IDUser_Scorevarchar10不允许为空记录者成绩(2)数据库管理软件采用Mysql或者Acess,通过这两款软件来管理程序中需要存储管理的数据,并且能够加强我们的数据库思维,为以后的开发打好基础。数据库的详细代码设计如下:package Tools;public class DB private String url="jdbc:mysql:/localhost:3306/plane"private String driver=".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.out.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);return 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.append(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分数查看界面4.2类的详细设计       4.2.1MyPlane类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)构造函数,初始化我方战的位置,使之居于中央。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.2Bullet1UML类图2. 详细分析(1) 成员变量l BULLET_SPEED为int类型变量,初始为15.战机发射子弹的速率。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.3EnemyBullet1UML类图2. 详细分析(1) 成员变量l x,y为int类型变量,记录敌机位置坐标。l bulletspeed为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.4EnemyPlane1UML类图2. 详细分析(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 getx(),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.5Explode1UML类图2. 详细分析(1) 成员变量l x,y为int类型变量,记录爆炸位置。l live 为boolean类型变量,判断爆炸状态。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.6PlayMusic1UML类图2. 详细分析(1) 成员变量l musicFile为File类型对象,用来播放的文件。l clip为 AudioClip类型对象,进行播放的对象。l fileURI 为URI类型对象,文件的URI路径。l fileURL 为URL类型对象,文件的URL路径。(2) 成员方法l PlayMusic(String music)构造方法,初始化播放的音频文件。l play()播放方法,进行音频播放。l stop()停止方法,音频停止方法。l loop()循环方法,使音频循环播放。4.2.7GameBox1UML类图2. 详细分析(1) 成员变量l GAME_WIDTH是int型变量 设置游戏面板的宽度为800。l GAME_HEIGHT 是int型变量设置面板的高度为600。l f1I Image类型的对象,用来设置字体的颜色大小和行间距。l backgroundimage 用来加载背景图片。l plane Image类型变量,用来设置加载飞机的图片。l PLANE_WIDTH int类型变量,用来设置飞机的高度。l PLANE_HEIGHT int类型变量 用来设置飞机的宽度。l Explode1 Image类型的对象。用来加载爆炸的图片。l EXPLODE1_WIDTH int类型变量,用来设置爆炸的围的高度。l EXPLODE1_HEIGHT int类型变量,用来设置爆炸围的宽度。l Bullet Image类型的对象,用来设置子弹需要加载的图片。l BULLET_WIDTH int型变量,用来设置子弹的宽度。l BULLET_HEIGHT int 型变量,用来设置子弹的高度。l enemy1 Image类型的对象,用来设置敌机的宽度。l enemy2 Image类型的对象,用来设置敌机的高度。l enemybullet Image类型的对象,用来加载敌机发出的子弹。l ENEMYBULLET_WIDTH int类型的变量,用来设置子弹的大小。l ENEMYBULLET_HEIGHT int 类型的变量,用来设置子弹的大小。l back_music 字符串类型变量,加载背景音乐。l bomb_music字符串类型变量,加载子弹爆炸音乐。4.2.8DB1UML类图2. 详细分析(1) 成员变量l url为String类型对象,数据库URL路径。用来连接数据库。l driver为String类型对象,加载数据库的驱动。l conn为Connection类型对象,用来与数据库进行连接。l stmt为Statement类型对象,用来操作Sql语句从而操纵数据库。(2) 成员方法l DB()构造方法,加载数据库驱动,实现数据库连接。l excuteWrite(String name,String score)将数据写入数据库方法。l excuteRead()从数据库中读取数据方法。4.2.9StartFrame1UML类图2. 详细分析(1) 成员变量l bk为Image类型对象,用来加载游戏的背景位图。l myplane为MyPlane类型对象,建立我方战机。l sourse 为float类型变量,存储分数。l death, life为我方战机死亡次数和生命值。l bulletlist为 ArrayList<Bullet>对象,用来存储子弹的线性表。l explodelist 为ArrayList<Explode>对象,用来存储爆炸对象的线性表。l enemybulletlist为 ArrayList<EnemyBullet>对象,用来存储敌机子弹对象的线性表。l exItem,score为Jmenu类型对象,菜单条目。l jp为Jpanel对象,框架类的面板对象。l db为DB对象,用来进行数据库操作。l musicBackground musicBomb为PlayMusic对象,用来播放背景音乐。(2) 成员方法l StartFrame()构造方法,初始化面板及位图。加载游戏界面。l queryRecord()查询分数记录方法。l void run()游戏进行线程方法,实现游戏的运行。l clearEnemyBullet()清除无效的敌机子弹。l clearBullet()清除无效的子弹。l createBullet()创建子弹。l clearEnemyplane()清除敌机状态为False的对象。l clearExplode()清除爆炸状态为False的对象。l hitPlane()攻击敌机的方法。l impactMyplane()判断是否碰撞。l hitMyplane()我方战机被攻击的方法。l endGame()结束游戏,扫尾方法。l recored()记录成绩方法。l ifEnd()判断是否结束。l actionPerformed(ActionEvent e)菜单条目的动作事件实现方法。第五章 测试5.1 测试方案本游戏的测试方法采用检查各个功能,各个模块是否实现的方法。测试能否正常的运行,游戏是否流畅,是否会卡顿等一系列体验为测试主要因素。5.2 测试人员及目的测试人员:雷元刚 柯测试目的:游戏功能实现、流畅度以及体验感。5.3 测试项目及功能5.3.1控制区功能测试VK_UP按键:实现飞机的向上运动VK_DOWN按键:实现飞机的向下运动VK_LFET按键:实现飞机的向左运动VK_RIGHT按键:实现飞机的向右移动VK_UP及VK_LFET按键:实现飞机的左上飞行VK_DOWN及VK_LFET按键:实现飞机的左下飞机VK_UP及VK_RIGHT按键:实现飞机的右上飞行VK_DOWN及VK_RIGHT按键:实现飞机的右下飞行5.3.2菜单区功能测试分数菜单选项:查看游戏中保存的分数记录设置菜单选项:设置游戏中的背景音乐退出菜单选项:退出游戏5.3.3游戏区功能测试:敌机的正常行进以及我方战机的正常显示。5.3.4子弹的测试:敌机子弹的正常发射,我方战机的子弹正常发射。5.4 测试结果及分析测试1:控制区功能测试测试容: 我方战机的向上移动、向下移动、向左移动、向右移动、向左上移动、向左下移动、向右下移动、向右上移动的功能实现。测试目的:VK_UP、VK_DOWN、VK_LEFT、VK_RIGHT等四个功能按键。测试图:如图5.4.1 图5.4.1 控制区功能测试测试结果及分析:能够正确的通过WASD和方向键控制飞机的运动。测试2:菜单项功能测试。测试容:对菜单项的各个菜单条目进行功能测试。点击相应的菜单条目,功能能否实现。测试目的:菜单项的各个功能实现。测试图如图5.4.2: 图5.4.2 数据保存测试结果及分析:能够正常显示分数,用户名。实现了该部分功能的需求测试3:显示区功能测试测试容:我方战机和敌机的正常显示以及敌我双方子弹的正常行进。测试目的:通过测试,判断程序的功能是否正常测试图如图5.4.3: 图5.4.3 测试子弹功能测试结果及分析:通过测试,我方飞机和敌方飞机都能够正常发射子弹,子弹能够正确击中目标。第六章 小结在本次课程设计中,我们小组采用分工合作方式。在程序代码和设计报告书写中,小组两人均分工占比达到的50%左右,在代码的设计以及调试中,互相学习交流,对程序代码中有迷糊时,通过讨论、查阅资料来解决这些问题,从而保证了进度。这次课程设计遇到了许多问题,这也充分暴露了Java知识存储量的不够,在一些Java基础知识上比较薄弱,不明以。通过了课程设计的问题出现,重新学习了Java的基础知识,对Java知识又有了一个重新的理解。另外一个主要的问题就是在代码的书写中,有许多Java类以及函数不知道,以至于绕了很多弯路。在课程设计的代码书写过程中养成了查阅JavaAPI的好习惯,相信会在以后的程序设计中起到重要作用。针对这一次的课程设计,我做了以下总结:(1)Java是一门面向对象的语言,在程序设计中要有面向对象的思想,相比于代码。我认为面向对象的思想更加重要,在以后的学习中,要持续培养这种思维。(2)Java程序中查阅JavaAPI是一种比较好的方法,通过不断的查阅学习过程,能够累积许多新知识,久而久之就是一份巨大的财富。(3)Java程序中要学会设计,最好是能够懂得设计模式的相关知识,这在程序各个方面都是比较重要的。致 经过两天的不懈努力,很兴奋能完成一个Java编程程序,紧的心终于可以平静了。从中体会到以及学习到很多关于Java的知识,使我更加了解Java,并更加熟练了Java。在此次设计中我也遇到了很多的问题,都是经过查询JavaAPI和询问老师来解决这些问题,更重要的是上课时老师的细心教学,使我们学会了许多关于Java的基础知识,为本次的课程设计打好了很好的基础。从而使我能够顺利完成这次课程设计。在本次做课程设计过程中,要感王非老师的悉心关照,一直陪伴我们,并为我们讲解不懂的地方,很是辛苦,也很是忙碌。还要感学院为我们此次课程设计提供机房,让我们有了良好的学习环境可以利用做课程设计,从很大的程度上增强了我们对于Java学习的兴趣。和小组成员一块讨论,多听听别人的想法,想办法改进自己,这使我受益匪浅。只有比较才能知道自己的不足。结束课程设计时,明白了自己与实际所需的距离,因为现在毕业求职难,特别是对于像自己一般的人,更多的时侯是社会,职业选择自己,而不是更多的自己去选择职业,所以更应该把所学的知识灵活地用于实践,这次课程设计就是对自己一个很好的锻炼机会,无论任何的偿试,都是自己以后很宝贵的经验,更是对自己的一种充实。参考文献1 雍俊海.Java程序设计教程M. :清华大学,2014.2 钱慎一. Java程序设计教程实用教程M. :科学,2011. 3 明. 软件工程M. :中国铁道,2011.4 Ian Sommerville. Software Engineering, Ninth Editi M. :机械工业,2011.5 Eric Freeman,ElElisabeth Freeman. HeadFirst设计模式M. :中国电力,2007.6 严蔚敏,吴伟民. 数据结构(C语言版)M. :清华大学,2015.7 邓俊辉. 数据结构(C+语言版) M. :清华大学,2010.8 王珊,红. 数据库系统原理教程M. :清华大学,1998.附 录类StartFrame的源代码如下:public class StartFrame extends JFrame implements Runnable,ActionListenerImage bk=GameBox.backgroundimage;/加载游戏背景MyPlane myplane;/实例化自己的飞机对象List<EnemyPlane> enemyplanelist=new ArrayList<EnemyPlane>();/敌机线性表private int count=0;private float sourse=0;private int life=3,death=0;/自己子弹线性表List<Bullet> bulletlist=new ArrayList<Bullet>();/爆炸线性表List<Explode> explodelist=new ArrayList<Explode>();/敌机子弹线性表List<EnemyBullet> enemybulletlist=new ArrayList<EnemyBullet>();JPanel jp;JMenu exItem,score;JMenuBar menuBar;PlayMusic musicBackground,musicBomb;DB db;public static void main(String args) new Thread(new StartFrame().start();public StartFrame()/构造函数初始化db=new DB();musicBomb=new PlayMusic(GameBox.back_music);menuBar=new JMenuBar();score=new JMenu("分数");score.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) queryRecord(););menuBar.add(score); exItem=new JMenu("退出"); exItem.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) musicBackground.stop(); System.exit(0););menuBar.add(exItem);setJMenuBar(menuBar);/设置构架大小this.setSize(GameBox.GAME_WIDTH,GameBox.GAME_HEIGHT+30);/窗口居中int width=Toolkit.getDefaultToolkit().getScreenSize().width;int height=Toolkit.getDefaultToolkit().getScreenSize().height;setLocation(width/2-GameBox.GAME_WIDTH/2, /设置构架位置height/2-GameBox.GAME_HEIGHT/2);setResizable(false); /大小固定/设置飞机在框架的位置myplane=new MyPlane(GameBox.GAME_WIDTH/2,GameBox.GAME_HEIGHT-GameBox.PLANE_HEIGHT*2);/增加敌机线程启动new Thread(new AddEnemy().start();/为框架添加按键监听this.addKeyListener(new KeyMonitor();/框架添加游戏面板 this.add(new GameJPanel();/设置框架名称setTitle("打飞机小游戏");addWindowListener(new WindowAdapter()Overridepublic void windowOpened(WindowEvent arg0) musicBackground=new PlayMusic(GameBox.back_music);musicBackground.loop();Overridepublic void windowClosing(WindowEvent arg0) musicBackground.stop(););this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);private void queryRecord() String score=db.excuteRead();JFrame scoreFrame=new JFrame("-排行榜-");JTextArea scoreArea=new JTextArea();JScrollPane scoreScroll=new JScrollPane(scoreArea);scoreArea.setText("用户名: t 最高分:n");scoreArea.setEditable(false);scoreArea.append(score);scoreFrame.add(scoreScroll);scoreFrame.setSize(200, 100);scoreFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);scoreFrame.setVisible(true);Overridepublic void run() while(true)repaint();/Repaints this component. try Thread.sleep(48);/线程睡眠50毫秒 catch (InterruptedException e) e.printStackTrace(

    注意事项

    本文(打飞机小游戏Java课程设计报告书.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开