package com;
import javax.swing.*;
import java.awt.*;
public class TankGame1 extends JFrame{
MyTankPanel mytankPanel=null;
public static void main(String[] args) {
TankGame1 tankGrame=new TankGame1();
}
public TankGame1(){
mytankPanel=new MyTankPanel();
this.add(mytankPanel);
this.setSize(400, 300);
this.setLocation(400, 250);
this.setVisible(true);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}
}
//我的面板
class MyTankPanel extends JPanel{
//定义一个我的坦克
MyTank myTank=null;
public MyTankPanel(){
myTank=new MyTank(12,12);
}
//重写paint方法
public void paint(Graphics g){
super.paint(g);
g.fillRect(0, 0, 400, 300);
this.drawTank(myTank.getX(), myTank.getY(), g, 1, 0);
}
/**
* 画坦克方法
* @param x 横轴
* @param y 纵轴
* @param g 画图尖
* @param type 是自己还是敌人
* @param derect 方向
*/
public void drawTank(int x,int y,Graphics g,int type,int derect){
//判断坦克类型
switch(type){
//如果为0,则表示我的坦克
case 0:
g.setColor(Color.CYAN);
break;
//如果为0,则表示我的坦克
case 1:
g.setColor(Color.RED);
break;
}
//判断方向
switch(derect){
//向上
case 0:
//1.画出左边的矩形
g.fill3DRect(x, y, 7, 32,false);
//2.画出右边的矩形
g.fill3DRect(x+20, y, 7, 32,false);
//画出中间矩形
g.fill3DRect(x+5, y+5, 15, 22,false);
//画出圆形
g.fillOval(x+5, y+8, 15, 15);
//画出一条直线
g.drawLine(x+13, y-2, x+13, 30);
break;
case 1:
break;
}
}
}
//坦克类
class Tank{
//坦克横坐标
int x=0;
//坦克纵坐标
int y=0;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Tank(int x,int y){
this.x=x;
this.y=y;
}
}
//我的坦克
class MyTank extends Tank{
public MyTank(int x,int y){
super(x,y);
}
}