资源简介

实验目的:学会使用多线程进行并发程序设计。 实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。

资源截图

代码片段和文件信息

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.List;

public class Bullet {

public static final int SPEED = 10;

public static final int WIDTH = 10;
public static final int HEIGHT = 10;

int x y;

boolean live=true;

Client client;

public Bullet(int x int y Client client) {
this.x = x;
this.y = y;
this.client = client;
client.bulletCount++;
}

public void draw(Graphics g) {
if (!live) return;
Color c = g.getColor();
g.setColor(Color.orange);
g.fillOval(xyWIDTH HEIGHT);
g.setColor(c);

move();
}

public void move() {
     y-=SPEED*Math.cos(Math.PI * Cannon.angel/180);
     x-=SPEED*Math.sin(Math.PI * Cannon.angel/180);
if (x < 0 || y < 0 || x > client.GAME_WIDTH || y > client.GAME_HEIGH) {
client.bullets.remove(this);
}
}

public boolean hitPlane(Plane p) {
if (this.live && this.getRect().intersects(p.getRect()) && p.isLive()) {
//Explode e = new Explode(x y client);
//client.explodes.add(e);
Crash c = new Crash(xyclient);
client.crashs.add(c);
client.planes.remove(p);
client.bullets.remove(this);
client.score++;
return true;
} else
return false;
}

public boolean hitPlanes(List planes) {
for (int i = 0; i < planes.size(); ++i) {
if (hitPlane(planes.get(i))) {
return true;
}
}
return false;
}

public Rectangle getRect() {
return new Rectangle(x y WIDTH HEIGHT);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-08 14:25  images\
     文件       38295  2018-06-07 12:09  images\boom.gif
     文件       15895  2018-06-08 13:44  images\crash.png
     文件       13602  2018-06-08 00:47  images\fire.png
     文件       17259  2018-06-07 18:43  images\left.png
     文件        1839  2018-06-06 23:27  images\plane.gif
     文件        3931  2018-06-06 20:30  images\plane.png
     文件       17480  2018-06-08 00:38  images\right.png
     文件        1528  2018-06-08 14:04  Bullet.java
     文件        1596  2018-06-07 18:03  Cannon.java
     文件        5355  2018-06-08 14:02  Client.java
     文件         948  2018-06-08 13:44  Crash.java
     文件        1637  2018-06-08 13:44  Explode.java
     文件        1047  2018-06-08 00:55  Plane.java

评论

共有 条评论