采用了多线程,但是只能new一辆敌坦克

版权声明: 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;
        }
    }

}

猜你喜欢

转载自blog.csdn.net/eds124/article/details/82422745
今日推荐