* Created by Administrator on 2018/6/7.
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Plane1 extends JFrame{
MyPanel mp=null;
public static void main(String[] args){
Plane1 p1=new Plane1();
}
public Plane1(){
mp=new MyPanel();
Thread t1=new Thread(mp);
t1.start();
this.add(mp);
this.addKeyListener(mp);
this.setSize(400,600);
this.setLocation(600,200);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener,Runnable
{
MyPlane mpa=null;
Vector<DiPlane> dfj=new Vector<DiPlane>();
int dfjsl=3;
public MyPanel(){
mpa=new MyPlane(150,500);
for(int i=0;i<dfjsl;i++){
DiPlane dpa=new DiPlane((i)*150+30,0);
Thread t2=new Thread(dpa);
t2.start();
DZidan zd1=new DZidan(dpa.x,dpa.y);
dpa.dzd.add(zd1);
Thread t3=new Thread(zd1);
t3.start();
dfj.add(dpa);
}
}
public void paint(Graphics g){
super.paint(g);
g.fillRect(0, 0, 400, 600);
g.setColor(Color.CYAN);
if(mpa.shengming){
this.drawMy(mpa.getX(), mpa.getY(), g);
}
for(int i=0;i<dfj.size();i++){
DiPlane dpa=dfj.get(i);
if(dpa.shengming){
// this.drawDi(dpa.getX(),dpa.getY(), g);
for(int j=0;j<dpa.dzd.size();j++){
DZidan dfzd=dpa.dzd.get(j);
if(dfzd.shengming){
Image tp3=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/2.png"));
g.drawImage(tp3, dfzd.x, dfzd.y, 30, 30,this);
}else {
dpa.dzd.remove(dfzd);
}
}
}
}
for(int i=0;i<mpa.aa.size();i++){
Zidan zd=mpa.aa.get(i);
if(zd!=null&&zd.shengming==true){
g.setColor(Color.white);
g.fill3DRect(zd.x, zd.y, 3, 3, false);
}
if(zd.shengming==false){
mpa.aa.remove(zd);
}
}
}
public void drawMy(int x,int y,Graphics g){
Image tp1=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/1.png"));
g.drawImage(tp1, x, y, 30, 30,this);
}
public void drawDi(int x,int y,Graphics g){
Image tp1=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/2.png"));
g.drawImage(tp1, x, y, 30, 30,this);
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_W){
this.mpa.xiangshang();
}else if(e.getKeyCode()==KeyEvent.VK_A){
this.mpa.xiangzuo();
}else if(e.getKeyCode()==KeyEvent.VK_S){
this.mpa.xiangxia();
}else if(e.getKeyCode()==KeyEvent.VK_D){
this.mpa.xiangyou();
}
if(e.getKeyCode()==KeyEvent.VK_J)
{
if(this.mpa.aa.size()<8){
this.mpa.fszd();
}
}
this.repaint();
}
public void jzdf(Zidan zd,DZidan dzd){
if(zd.x>dzd.x&&zd.x<dzd.x+30&&zd.y>dzd.y&&zd.y<dzd.y+30){
zd.shengming=false;
dzd.shengming=false;
}
}
public void jzwf(DZidan dzd,MyPlane mpa){
if(dzd.x>mpa.x&&dzd.x<mpa.x+30&&dzd.y>mpa.y&&dzd.y<mpa.y+30){
mpa.shengming=false;
dzd.shengming=false;
}
}
public void run(){
while(true){
try{
Thread.sleep(100);
}catch(Exception e){}
for(int i=0;i<mpa.aa.size();i++){
Zidan zd=mpa.aa.get(i);
if(zd.shengming){
for(int j=0;j<dfj.size();j++){
DiPlane dpa=dfj.get(j);
for(int k=0;k<dpa.dzd.size();k++){
DZidan dfzd=dpa.dzd.get(k);
if(dfzd.shengming){
this.jzdf(zd,dfzd);
}
}
}
}
}
for(int i=0;i<this.dfj.size();i++){
DiPlane dpa=dfj.get(i);
for(int j=0;j<dpa.dzd.size();j++){
DZidan drzd=dpa.dzd.get(j);
if(mpa.shengming){
this.jzwf(drzd, mpa);
}
}
}
this.repaint();
}
}
}
import java.util.Vector;
/**
* Created by Administrator on 2018/6/7.
*/
class Plane{
int x=0;
int y=0;
int sudu=5;
boolean shengming=true;
public int getSudu() {
return sudu;
}
public void setSudu(int sudu) {
this.sudu = sudu;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return y;
}
public Plane(int x,int y){
this.x=x;
this.y=y;
}
}
class MyPlane extends Plane {
Vector<Zidan> aa=new Vector<Zidan>();
Zidan zd=null;
public MyPlane(int x,int y){
super(x,y);
}
public void xiangshang(){
if(y>0)
{
y-=sudu;
}
}
public void xiangzuo(){
if(x>0)
{
x-=sudu;
}
}
public void xiangxia()
{
if(y>550){
y+=sudu;
}
}
public void xiangyou()
{
if(x<360){
x+=sudu;
}
}
public void fszd(){
zd=new Zidan(x+12,y);
aa.add(zd);
Thread t=new Thread(zd);
t.start();
}
}
class DiPlane extends Plane implements Runnable{
Vector<DZidan>dzd=new Vector<DZidan>();
Vector<DiPlane>dfj=new Vector<DiPlane>();
int time=0;
public DiPlane(int x,int y){
super(x,y);
}
public void run(){
while (true){
int a=(int)(Math.random()*2);
switch (a)
{
case 0:
for (int i=0;i<30;i++){
if(x<360){
x+=sudu;
try{
Thread.sleep(50);
}catch(Exception e){}
}
}
break;
case 1:
for (int i=0;i<30;i++){
if(x>0) {
x -= sudu;
try {
Thread.sleep(30);
} catch (Exception e) {
}
}
}
break;
}
if(this.shengming==false){
break;
}
this.time++;
if(time%2==0){
if(shengming){
if(dzd.size()<5){
DZidan zd=null;
zd=new DZidan(x+10,y);
dzd.add(zd);
Thread t5=new Thread(zd);
t5.start();
}
}
}
}
}
}
class Zidan implements Runnable{
int x=0;
int y=0;
int sudu=5;
boolean shengming=true;
public Zidan(int x,int y){
this.x=x;
this.y=y;
}
public void run(){
while(true){
try{
Thread.sleep(50);
}catch (Exception e){}
y-=sudu;
if(x<0||x>400||y<0||y>600){
this.shengming=false;
break;
}
}
}
}
class DZidan implements Runnable{
int x=0;
int y=0;
int sudu=5;
boolean shengming=true;
public DZidan(int x,int y){
this.x=x;
this.y=y;
}
public void run(){
while(true){
try{
Thread.sleep(50);
}catch (Exception e){}
y+=sudu;
if(x<0||x>400||y<0||y>600){
this.shengming=false;
break;
}
}
}
}