需要注意:先要在图纸上设计好点位,以及坦克左轮子,右轮子位置,坦克盖子位置等等。
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("暂时没有处理");
}
}
}
网友评论