韩顺平java坦克大战1.0版本_源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/**画坦克1.0
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyTankGame extends JFrame
{
MyPanel mp=null;
public static void main(String[] args)
{
MyTankGame mtk=new MyTankGame();
}
public MyTankGame()
{
mp=new MyPanel();
this.add(mp);//把面板加入窗体
//注册监听
this.addMouseListener(mp);
this.addKeyListener(mp);
this.addMouseMotionListener(mp);
this.addWindowListener(mp);
this.setTitle("坦克大战");//窗体标题
this.setSize(600,400);//大小,宽,高(像素)
this.setLocation(300,300);//显示位置。左边距,上边距
//禁止用户改变窗口大小
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);//显示
}
}
//我的面板
class MyPanel extends JPanel implements
WindowListener,MouseListener,MouseMotionListener,KeyListener {//定义一个我的坦克
Hero hero=null;
Diren diren=null;
public MyPanel()
{
hero=new Hero(300,200);
diren=new Diren(100,0);
//diren.start();
}
public void paint(Graphics g)
{
super.paint(g);
//画坦克(到时候封装到一个函数)
//画左边矩形
//g.setColor(Color.black);
g.fillRect(0, 0, 600, 400);
this.drawTank(hero.getX(),hero.getY(), g,hero.dstct,1);
this.drawTank(diren.getX(),diren.getY(), g,1,0);
this.drawTank(diren.getX()+50,diren.getY(), g,1,0);
this.drawTank(diren.getX()+100,diren.getY(), g,1,0);
}
//画坦克的函数
public void drawTank(int x,int y,Graphics g,int direct,int type) {
switch (type)
{//0我的坦克
case 0:g.setColor(Color.blue);
break;
//1敌人坦克
case 1:g.setColor(Color.GREEN);
break;
}
// 判断方向
switch (direct)
{//0向上
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,true);//中
g.setColor(Color.RED);
g.drawLine(x+10, y+15, x+10,y);//线
g.setColor(Color.YELLOW);
g.fillOval(x+5, y+10, 10, 10);//圆
break;
case 1://下
g.fill3DRect(x, y, 5, 30,false);
g.fill3DRect(x+15, y, 5, 30,false);
g.fill3DRect(x+5, y+5, 10, 20,true);
g.setColor(Color.RED);
g.drawLine(x+10, y+15, x+10,y+30);
g.setColor(Color.YELLOW);
g.fillOval(x+5, y+10, 10, 10);
break;
case 2://左
g.fill3DRect(x, y, 30, 5,false);
g.fill3DRect(x, y+15, 30, 5,false);
g.fill3DRect(x+5, y+5, 20, 10,true);
g.setColor(Color.RED);
g.drawLine(x+15, y+10, x,y+10);
g.setColor(Color.YELLOW);
g.fillOval(x+10, y+5, 10, 10);
break;
case 3://右
g.fill3DRect(x, y, 30, 5,false);
g.fill3DRect(x, y+15, 30, 5,false);
g.fill3DRect(x+5, y+5, 20, 10,true);
g.setColor(Color.RED);
g.drawLine(x+15, y+10, x+30,y+10);
g.setColor(Color.YELLOW);
g.fillOval(x+10, y+5, 10, 10);
break;
}
}
public void keyPressed(KeyEvent e)
{
// 键按下监听
System.out.println("按下:"+e.getKeyChar());
if(e.getKeyCode()==KeyEvent.VK_DOWN)