坦克大战1(坦克的绘图实现)

坦克绘图的实现比较简单,可以分解为三个矩形、一个圆形以及一条直线,如图所示:坦克

在本代码中,主要是创建了TANK类、MyTank类、MyPanel类,其作用如下:


Tank类主要实现坦克的定义,其成员变量为其的横轴和纵轴的位置;

MyTank类主要定义我军的坦克,继承Tank;MyPanel类主要实现坦克的绘图实现;

最后将其加入到JFrame中,设计窗口的属性,让其显示,创建对象即可。


程序代码如下:

/**
 * 功能:绘画一个坦克
 */
package com.text3_2;


import java.awt.*;
import javax.swing.*;


public class MyTankGame_1 extends JFrame{
MyPanel mypanel=null;


public static void main(String[] args) {
MyTankGame_1 mytankgame_1=new MyTankGame_1();
}


    public MyTankGame_1()
    {
    mypanel=new MyPanel();
 
    this.add(mypanel);
    this.setSize(400,300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
    this.setVisible(true);
    }


}
class Tank
{
private int x;
private int y;
public Tank(int x,int y)
{
this.x=x;
this.y=y;
}
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;
}
}
class MyTank extends Tank
{
public MyTank(int x,int y){
super(x,y);
}
}
class MyPanel extends JPanel
{
MyTank hero=null;
public void paint(Graphics g)
{
super.paint(g);
g.fillRect(0, 0, 400,300);
  this.drawTank(hero.getX(), hero.getY(),g,0 ,0);
}
public MyPanel()
{
hero=new MyTank(10,10);
}
public void drawTank(int x,int y,Graphics g,int direction,int type)
{
switch(type)
{
case 0:g.setColor(Color.CYAN);
break;
case 1:g.setColor(Color.BLUE);
break;
}
switch(type)
{
//向上
case 0:g.fill3DRect(x, y, 5, 30, false);
      g.fill3DRect(x+15, y, 5, 30, false);
      g.fill3DRect(x+5, y+5, 10, 20, false);
      g.fillOval(x+5, y+10, 10, 10);
      g.drawLine(x+10, y+15, x+10, y+2);
      break;
}
}
}


程序运行效果如下;坦克大战1(坦克的绘图实现)_第1张图片


你可能感兴趣的:(个人作品)