TankBattle类

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();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值