最近在学习坦克大战开发,这个游戏涉及到Java各个方面的技术,
1、java面向对象编程
2、界面编程
3、绘图技术
4、多线程
5、文件i/o操作
6、数据库
下面实现画出坦克的功能
/*
* 作者:
* 功能:坦克游戏1.0
* 1.画出坦克
* 时间:2011.09.05
*/
package com.tank1;
import java.awt.*;
import javax.swing.*;
public class MyTankGame1 extends JFrame{
MyPanel mp;
public static void main(String[] args) {
MyTankGame1 mtg=new MyTankGame1();
}
public MyTankGame1(){
mp=new MyPanel();
this.add(mp);
this.setTitle("坦克大战");
this.setSize(350,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class MyPanel extends JPanel{
Hero hero=null;
public MyPanel(){
hero=new Hero(10,10);
}
public void paint(Graphics g){
super.paint(g);
//g.fillRect(0, 0, 400, 300);
this.drawTank(20, 30, g, 0, 1);
this.drawTank(50, 60, g, 0, 0);
}
//画出坦克的方法
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:
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);
}
}
}
class Tank{
int x;
int y;
public Tank(int x,int y){
this.x=x;
this.y=y;
}
public void setX(int x){
this.x=x;
}
public int getX(){
return x;
}
public void setY(int y){
this.y=y;
}
public int getY(){
return y;
}
}
class Hero extends Tank{
public Hero(int x, int y) {
super(x, y);
}
}
下面是运行截图: