简单的坦克大战实现

这是一个简单的类,主要作用是判断坦克移动的方向,通过监听实现

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JPanel;

public class BlackBan extends JPanel implements KeyListener {

private Integer x = 50;// 塔克的x坐标

private Integer y = 50;// 坦克的y坐标

private Image tanKeImg = Toolkit.getDefaultToolkit().getImage("images/up.png");// 坦克初始化图片

public BlackBan() {// 无参构造方法
    // 调用画笔
    repaint();
}

// 需要画笔(alt+shift+s)
@Override
public void paint(Graphics g) {
    // super.paint(g):将黑板擦干净
    super.paint(g);
    // 将颜色改为黑色
    this.setBackground(Color.BLACK);
    // 开始作画
    g.drawImage(tanKeImg, x, y, 100, 100, this);
}

@Override
public void keyPressed(KeyEvent e) {// 当键盘按下时触发
    // 首先需要判断当前用户按下的是哪个键
    int num = e.getKeyCode();
    switch (num) {
    case 37:
        System.out.println("亲,您按下的是左方向键");
        tanKeImg = Toolkit.getDefaultToolkit().getImage("images/left.png");
        if (x >= 0)
            x = x - 5;
        break;
    case 38:
        System.out.println("亲,您按下的是上方向键");
        tanKeImg = Toolkit.getDefaultToolkit().getImage("images/up.png");
        if (y >= 0)
            y -= 5;
        break;
    case 39:
        System.out.println("亲,您按下的是右方向键");
        tanKeImg = Toolkit.getDefaultToolkit().getImage("images/right.png");
        if (x <= 490)
            x = x + 5;
        break;
    case 40:
        System.out.println("亲,您按下的是下方向键");
        tanKeImg = Toolkit.getDefaultToolkit().getImage("images/down.png");
        if (y <= 265)
            y += 5;
        break;
    }
    repaint();
}

@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyReleased(KeyEvent e) {// 当键盘按下并且松开触发
    // System.out.println("键盘松开了....");
}

这个类主要用于调整弹框的背景和坦克移动的距离

public class GameWindow {
public static void main(String[] args) {
// 创建一个窗口
JFrame jFrame = new JFrame(“坦克大战v2版”);
// 设置窗口的大小与在屏幕中显示的位置
jFrame.setBounds(300, 200, 600, 400);
// 将窗口大小设置为不可更改状态
jFrame.setResizable(false);
// 设置窗口的背景颜色
Container container = jFrame.getContentPane();// 容器
// container.setBackground(Color.BLACK);
// 将黑板添加到container
BlackBan ban = new BlackBan();
container.add(ban);

    // 给窗口添加监听
    jFrame.addKeyListener(ban);

    // 更改设置窗口的图标
    // 将head.png图片封装成Image类型的对象
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image headIcon = toolkit.getImage("images/head.png");
    jFrame.setIconImage(headIcon);
    // 设置窗口关闭属性
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // 最后一步:
    jFrame.setVisible(true);
}

}

猜你喜欢

转载自blog.csdn.net/qq_42796149/article/details/81227205