美文网首页
JAVA实现坦克大战小游戏——绘制坦克

JAVA实现坦克大战小游戏——绘制坦克

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-08-14 15:29 被阅读0次

需要注意:先要在图纸上设计好点位,以及坦克左轮子,右轮子位置,坦克盖子位置等等。

package com.tank.tankgame;

import javafx.embed.swing.JFXPanel;

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

/**
 * 坦克大战的绘图区域
 */
public class MyPanel extends JPanel {

    Hero hero = null;

    public MyPanel(){
        hero =  new Hero(100,100); // 初始化自己的坦克

    }

    @Override
    public void  paint (Graphics g){
        super.paint(g);

        g.fillRect(0,0,1000,750); // 填充矩形,默认黑色
        // 画出坦克-封装方法
        drawTank(hero.getX(),hero.getY(),g,0,0);
    }

    /**
     *  封装的坦克方法
     * @param x 坦克的左上角 x坐标
     * @param y 坦克的左上角 y坐标
     * @param g 画笔
     * @param direct 坦克方向 上下左右
     * @param type 坦克类型
     */
    public void drawTank(int x,int y,Graphics g,int direct ,int type){

        switch (type){
            case 0: // 我们的坦克
                g.setColor(Color.cyan);
                break;
            case 1: // 敌人的坦克
                g.setColor(Color.YELLOW);
                break;
        }
        // 根据坦克的方向绘制坦克
        switch (direct){
            case 0: // 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("暂时没有处理");
        }
    }

}

相关文章

网友评论

      本文标题:JAVA实现坦克大战小游戏——绘制坦克

      本文链接:https://www.haomeiwen.com/subject/kldovltx.html