package com.bigdata.tankbattle; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.FileReader; public class TankBattle { public static void main(String[] args) { // 创建一个窗口 Frame frame = new Frame(); // 设置一个标题 frame.setTitle("坦克大战(TankBattle)"); // 调用Tank里的数据 // 我的坦克 Tank tank = new Tank(Tank.InIT_X,Tank.InIT_Y,Tank.WIDTH,Tank.HEIGHT,Tank.WHEEL_WIDTH,Tank.BARREL_WIDTH,Tank.BARREL_HEIGHT); tank.setSelf(true); tank.setDirection(Tank.UP); tank.setBlood(Tank.BLOOD); // 设置一个可以自己关闭的windowClosing frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); // 让坦克走起来 frame.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } // 按下键盘,转方向 @Override public void keyPressed(KeyEvent e) { int keyCode=e.getKeyCode(); // 向上转 if (keyCode == KeyEvent.VK_UP){ tank.setDirection(Tank.UP); tank.setMove(true); tank.move(); } // 向右转 else if (keyCode == KeyEvent.VK_RIGHT) { tank.setDirection(Tank.RIGHT); tank.setMove(true); tank.move(); } // 向下转 else if (keyCode == KeyEvent.VK_DOWN){ tank.setDirection(Tank.DOWN); tank.setMove(true); tank.move(); } // 向左转 else if (keyCode == KeyEvent.VK_LEFT){ tank.setDirection(Tank.LEFT); tank.setMove(true); tank.move(); } // 子弹的发射 else if (keyCode == KeyEvent.VK_SPACE){ Bullet bullet = new Bullet(tank,Bullet.DIAMETER); bullet.setTank(tank); GamePanel.BULLET_LIST.add(bullet); } } // 松开键盘 @Override public void keyReleased(KeyEvent e) { } }); AI.enemy(); // AI. // 调用AI中的墙方法 AI.setWallList(); // 显示面板窗口 frame.setVisible(true); // 将自带的布局方式清空,自己设置 frame.setLayout(null); // 画布左右两边的边框 frame.setSize(GamePanel.PANEL_WIDTH+60,GamePanel.PANEL_HEIGHT+90); // 边框颜色 frame.setBackground(Color.WHITE); // 调整窗口打开时的起点 frame.setLocation(100,100); // 控制窗口不放大,不可拉伸 frame.setResizable(false); // 拿到GamePanel当中设置的画布 GamePanel panel = GamePanel.getInstance(); panel.setTank(tank); panel.setSize(GamePanel.PANEL_WIDTH, GamePanel.PANEL_HEIGHT); // 画布颜色 panel.setBackground(new Color(0x9f9f9f)); // 将左右边框加到画布上 frame.add(panel); // 边框各宽度 panel.setLocation(30,50); // 显示窗口 panel.refresh(); } }
TankBattle类
最新推荐文章于 2022-03-02 11:19:50 发布