- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java课程设计
--多线程实现
姓名:
学号:2402100211
班号 专业:计算机科学与技术
一:程序概述:
该程序主体分为两部分一部分是演示两个航天器的对接。第二个部分是一个游戏,游戏名为《保卫太空》。该游戏中,我们的航天器在围绕地球转动,而有一些不怀好意的人想要破坏我们的飞行器,试图用导弹将其打下,我们的任务就是保护航天器,拦截敌人发出的导弹,一共有四关,随着关数升高,敌人炮弹的速度将会越来越快,敌人的大炮也会增多。
二:程序分析:
程序中主要用到的类:
Continent类:
该类是大陆线程类,控制大陆的移动,形成地球转动的效果。
View类:
该类是JPanel类的子类,该程序用于画界面,所有的图形全都画在View类的对象中。
Aircraft类:
该类是飞行器的抽象父类,提供飞行器的一些共有属性,抽象方法等,继承了线程类Thread。
ShenEight类:
该类是Aircraft的子类,神州八号类,可以绕地球飞行,并且可以与指定的TianGong类对象完成对接任务。
TianGong类:
该类是Aircraft的子类,天宫类,可以实现绕地球飞行,并且可以在与指定的ShenEight对象对接后控制ShenEight对象一起运动。
ParentBarbette类:
该类是大炮的抽象父类,提供大炮的一半属性,以及抽象方法。
ComBarbette类:
该类是ParentBarbette类的子类,并且实现了Rounnable接口,该类对象由线程控制,控制大炮发炮的速度等,攻击围绕地球运动的飞行器。
PlayerBarbette类:
该类是ParentBarbette类的子类,用于拦截敌人的炮弹。实现了KeyListener接口,可以响应键盘的空格以及上下左右方向键。按下空格键,玩家炮发出炮弹,方向键可以移动炮口,使其瞄准目标。
CountScore类:
该类是记分类,在游戏中,该类可以通过拦截是否成功或者是敌方炮弹是否攻击到飞行器来进行加减分,从而判断是否过关等等。
三:程序主要类的实现:
(1)Continent类:
public class Continent extends Thread {
View earth;
Mainland land1;
Mainland land2;
public Continent( Point2D.Double cen1, Point2D.Double cen2 , View ear )
{
earth = ear;
land1 = new Mainland( cen1, ear );
land2 = new Mainland( cen2, ear );
}
public void run()
{
while(true)
{
land2.changePos(); //平移中心
land1.changePos(); //平移中心
earth.repaint(); //窗口重绘
try {
sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void drawMainland( Graphics2D g )
{
g.setClip( earth.getEarth() ); //设置剪贴区
Color oldColor = g.getColor();
g.setColor( new Color(0, 150, 0) ); //设置前景色
g.fill(land1.polygon);
g.fill(land2.polygon);
g.setClip(null); //消除剪贴区
g.setColor(oldColor);
}
}
class Mainland
{
static final int N = 100;
static final int UserRadius = 56;
View earth;
Point2D.Double center;
int xPos1[]
您可能关注的文档
- 数据结构设计报告毕业设计(论文).doc
- 基于uC_COS的直流电机PID转速闭环调速控制系统Proteus...毕业设计(论文).doc
- 编译程序的设计与实现毕业设计(论文).doc
- 机械工程系设计论文指导书.doc
- 基于AT89S51单片机酒精浓度探测仪的设计与实现设计论文(论文)word格式.doc
- 高频信号源的原理与制作课程设计 模版毕业设计(论文).doc
- 简易数控直流稳压电源毕业设计(论文).doc
- 城市交通灯控制系统设计微机原理课程设计毕业设计(论文).doc
- 基于vc++企业工资管理系统论文设计论文(论文)word格式.doc
- AR基于LCD的电子时钟M7电子时钟嵌入式_课程设计报告毕业设计(论文).doc
文档评论(0)