版权声明: https://blog.csdn.net/eds124/article/details/82422745
package com.dinglin;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.GregorianCalendar;
import java.util.Random;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame {
private static Main1 m1 = new Main1();
public Main() {
this.add(m1);
this.addKeyListener(m1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setLayout(null);
this.setVisible(true);
m1.setBackground(Color.BLACK);
m1.setLocation(10, 10);
m1.setSize(1900, 900);
}
public static void main(String[] args) {
Main m = new Main();
}
}
class Main1 extends JPanel implements KeyListener {
private static int x = 900, y = 800, width = 100, height = 100, speed = 100;
public void paint(Graphics g) {
super.paint(g);
g.fillRect(x, y, width, height);
for (int i = 0; i < 10; i++) {
EnemyTank et = new EnemyTank(g);
Thread t = new Thread(et);
t.start();
}
this.repaint();
}
public void keyPressed(KeyEvent ke) {
int i = ke.getKeyCode();
if (i == KeyEvent.VK_E && y > 0) {
y -= speed;
} else if (i == KeyEvent.VK_D && y < 800) {
y += speed;
} else if (i == KeyEvent.VK_S && x > 0) {
x -= speed;
} else if (i == KeyEvent.VK_F && x < 1800) {
x += speed;
}
}
public void keyReleased(KeyEvent ke) {
}
public void keyTyped(KeyEvent ke) {
}
}
class EnemyTank implements Runnable {
private static int ex = 0, ey = 0, ewidth = 100, eheight = 100, espeed = 1;
public EnemyTank(Graphics g) {
g.fillRect(ex, ey, ewidth, eheight);
}
public void run() {
Random r = new Random();
int i = r.nextInt(4);
if (i == 0 && ey > 0) {
ey -= espeed;
} else if (i == 1 && ey < 800) {
ey += espeed;
} else if (i == 2 && ex > 0) {
ex -= espeed;
} else if (i == 3 && ex < 1800) {
ex += espeed;
}
}
}