版权声明: https://blog.csdn.net/eds124/article/details/82453326
package com.dinglin;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame {
private static MyJPanel mjp = new MyJPanel();
public Main() {
mjp.setBackground(Color.BLACK);
mjp.setBounds(10, 10, 1900, 900);
this.add(mjp);
this.addKeyListener(mjp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setLayout(null);
this.setVisible(true);
}
public static void main(String[] args) {
Main m = new Main();
}
}
class MyJPanel 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);
EnemyTank et = new EnemyTank(g, 0, 0);
EnemyTank et2 = new EnemyTank(g, 900, 0);
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 {
private int ex = 0, ey = 0, ewidth = 100, eheight = 100, espeed = 100;
public EnemyTank(Graphics g, int ex, int ey) {
Random r = new Random();
int i = r.nextInt(4);
this.ex = ex;
this.ey = ey;
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;
}
g.fillRect(ex, ey, ewidth, eheight);
}
}