java绘制坦克

目录:

    • 坦克类:
    • 画板类:
    • 主程序:
    • 实现效果:

坦克类:

package 坦克大战.坦克;

/**
 * @Auther:
 * @Date: 2022/4/17 - 04 - 17 - 13:29
 * @Description: 坦克大战.坦克
 * @version: 1.0
 */
public class Tanke_Class {
    private int x;      //坦克横坐标
    private int y;      //坦克纵坐标
    //构造器
    public Tanke_Class(int x, int y) {
        this.x = x;
        this.y = y;
    }
/*      以下为set 和 get 方法*/
    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;
    }
}

画板类:

package 坦克大战.坦克;

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

/**
 * @Auther:
 * @Date: 2022/4/17 - 04 - 17 - 13:31
 * @Description: 坦克大战.坦克
 * @version: 1.0
 *  绘图区域
 */
public class Panel extends JPanel {
    //定义坦克
    Tanke_Class tanke = null;
    public Panel(){
        //初始化坦克
        tanke = new Tanke_Class(100,100);
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.fillRect(0,0,1000,750);    //绘画区域填充矩形,默认黑色
        drawTanke(tanke.getX(),tanke.getY(),g,0,0);     //绘制坦克
    }

    //编写绘画坦克的方法
    /*
    *   x : 坦克左上角x坐标
    *   y : 坦克左上角y坐标
    *   g: 画笔
    *   direct : 坦克方向
    *   type : 坦克类型
    * */
    public void drawTanke(int x,int y,Graphics g,int direct,int type){
        switch(type){
            case 0:     //设置自己坦克的颜色
                g.setColor(Color.cyan);
                break;
            case 1:     //设置敌方坦克颜色
                g.setColor(Color.green);
                break;
        }
        //根据方向绘制坦克
        switch(direct){
            case 0:
                g.fill3DRect(x,y,10,60,false);          //绘画坦克左边轮子
                g.fill3DRect(x + 30,y,10,60,false);  	//绘画坦克右边轮子
                g.fill3DRect(x + 10,y + 10,20,40,false);  //绘画坦克中间盖子
                g.fillOval(x + 10,y + 20,20,20);          //绘画元圆形盖子
                g.drawLine(x + 20,y + 30,x + 20,y);       //绘画炮筒
                break;
            default:
                System.out.println("暂未处理");
        }
    }
}

主程序:

package 坦克大战.坦克;

import javax.swing.*;

/**
 * @Auther: 
 * @Date: 2022/4/17 - 04 - 17 - 13:38
 * @Description: 坦克大战.坦克
 * @version: 1.0
 */
public class Game extends JFrame {//继承JFrame、JFrame对应窗口,可以当作一个画框
    //定义panel
    Panel panel = null;

    public static void main(String[] args) {
            Game game = new Game();
    }

    public Game(){
        //初始化面板
        panel = new Panel();
        //面板放入画框
        this.add(panel);
        //设置画框大小
        this.setSize(1000,750);
        //设置当点击窗口结束按钮后程序退出。若无此设置点击窗口 x 按钮后程序仍在执行
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置显示
        this.setVisible(true);
    }
}

实现效果:

本方法采用直接绘制,也可选用加入图片的形式实现坦克绘制
java绘制坦克_第1张图片
出处:韩顺平老师
声明:此文章为学习笔记,如有侵权请联系删除。

你可能感兴趣的:(Java,java)