java课程设计报告保卫太空小游戏

java课程设计报告保卫太空小游戏

ID:35201478

大小:239.00 KB

页数:16页

时间:2019-03-21

java课程设计报告保卫太空小游戏_第1页
java课程设计报告保卫太空小游戏_第2页
java课程设计报告保卫太空小游戏_第3页
java课程设计报告保卫太空小游戏_第4页
java课程设计报告保卫太空小游戏_第5页
资源描述:

《java课程设计报告保卫太空小游戏》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java课程设计--多线程实现姓名:学号:2402100211班号:24021002专业:计算机科学与技术一:程序概述:该程序主体分为两部分一部分是演示两个航天器的对接。第二个部分是一个游戏,游戏名为《保卫太空》。该游戏中,我们的航天器在围绕地球转动,而有一些不怀好意的人想要破坏我们的飞行器,试图用导弹将其打下,我们的任务就是保护航天器,拦截敌人发出的导弹,一共有四关,随着关数升高,敌人炮弹的速度将会越来越快,敌人的大炮也会增多。二:程序分析:(1)程序中主要用到的类:lContinent类:该类是大陆线程类,控制大陆的移动,形成地球转动的效果。lView类:该类

2、是JPanel类的子类,该程序用于画界面,所有的图形全都画在View类的对象中。lAircraft类:该类是飞行器的抽象父类,提供飞行器的一些共有属性,抽象方法等,继承了线程类Thread。lShenEight类:该类是Aircraft的子类,神州八号类,可以绕地球飞行,并且可以与指定的TianGong类对象完成对接任务。lTianGong类:该类是Aircraft的子类,天宫类,可以实现绕地球飞行,并且可以在与指定的ShenEight对象对接后控制ShenEight对象一起运动。lParentBarbette类:该类是大炮的抽象父类,提供大炮的一半属性,以及抽象

3、方法。lComBarbette类:该类是ParentBarbette类的子类,并且实现了Rounnable接口,该类对象由线程控制,控制大炮发炮的速度等,攻击围绕地球运动的飞行器。lPlayerBarbette类:该类是ParentBarbette类的子类,用于拦截敌人的炮弹。实现了KeyListener接口,可以响应键盘的空格以及上下左右方向键。按下空格键,玩家炮发出炮弹,方向键可以移动炮口,使其瞄准目标。lCountScore类:该类是记分类,在游戏中,该类可以通过拦截是否成功或者是敌方炮弹是否攻击到飞行器来进行加减分,从而判断是否过关等等。三:程序主要类的实

4、现:(1)Continent类:publicclassContinentextendsThread{Viewearth;Mainlandland1;Mainlandland2;publicContinent(Point2D.Doublecen1,Point2D.Doublecen2,Viewear){earth=ear;land1=newMainland(cen1,ear);land2=newMainland(cen2,ear);}publicvoidrun(){while(true){land2.changePos();//平移中心land1.changePos

5、();//平移中心earth.repaint();//窗口重绘try{sleep(10);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}publicvoiddrawMainland(Graphics2Dg){g.setClip(earth.getEarth());//设置剪贴区ColoroldColor=g.getColor();g.setColor(newColor(0,150,0));//设置前景色g.fill(land1.polygon);

6、g.fill(land2.polygon);g.setClip(null);//消除剪贴区g.setColor(oldColor);}}classMainland{staticfinalintN=100;staticfinalintUserRadius=56;Viewearth;Point2D.Doublecenter;intxPos1[]={/*画图坐标,因太多,故省略*/};intyPos1[]={/*画图坐标,因太多,故省略*/};intxPos2[]={/*画图坐标,因太多,故省略*/};intyPos2[]={/*画图坐标,因太多,故省略*/};publ

7、icGeneralPathpolygon;publicMainland(Point2D.Doublecen,Viewear){center=newPoint2D.Double();center.x=cen.x;center.y=cen.y;earth=ear;drawPolygon();}privatebooleanchangeCoor(int[]x,int[]y,int[]xPos,int[]yPos){if(x.length!=xPos.length

8、

9、y.length!=yPos.length

10、

11、xPos.length!=yPos.length)return

12、false

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。