坦克类:
//坦克父类 可以设置坦克出现位置(x,y)
class Tank {
int x = 0;
int y = 0;
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 Hero extends Tank{
public Hero(int x,int y){
super(x, y);
}
}
面板:
/*
* drawTank (坦克坐标x,y,画笔g,方向,坦克类型)
* 方法介绍:
* 可以设置-->坦克的颜色(类型:敌方坦克,我方坦克),方向,出现的坐标
*
* 如果type是default 则默认颜色为画出黑色坦克
*
* 封装性:将坦克封装到方法中。
*
*/
//画图
@SuppressWarnings("serial")
class MyPanel extends JPanel{
Hero hero = null;
public MyPanel(){
hero = new Hero(10,10);//设置坦克出现的位置(10,10)
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(0, 0, 400, 300);//背景填充
drawTank(hero.getX(),hero.getY(),g,0,0);//一定要传入画笔g
g.setColor(Color.yellow);
}
/*
* drawTank (坦克坐标x,y,画笔g,方向,坦克类型)
* 方法介绍:
* 可以设置-->坦克的颜色(类型:敌方坦克,我方坦克),方向,出现的坐标
*
* 如果type是default 则默认颜色为画出黑色坦克
*
* 封装性:将坦克封装到方法中。
*
*/
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);
default:
break;
}
switch (direct) {
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+4, y+10, 10 , 10);
g.drawLine(x+9, y+15, x+9, y );
break;
default:
break;
}
}
}
主函数:
/**
* 功能:坦克游戏的1.0
* 1.画出坦克
*/
package com.test1;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class MyTankGame1 extends JFrame{
MyPanel p1 = new MyPanel();
public MyTankGame1(){
add(p1);
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyTankGame1();
}
}