韩顺平java坦克大战1.0版本_源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档