博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java项目之——坦克大战06
阅读量:2381 次
发布时间:2019-05-10

本文共 2307 字,大约阅读时间需要 7 分钟。

功能:让坦克运动由我们来控制

内容:添加键盘监听类keyMonitor。

           TankClient添加键盘监听器。

            针对不同的键改变坦克的位置,与重画线程结合产生不同方向。

一、键盘监听类

private class KeyMonitor extends KeyAdapter{				public void keyPressed(KeyEvent e) {			System.out.println("ok");		}			}
二、键盘监听器

this.addKeyListener(new KeyMonitor());
三、不同的键改变坦克位置:(去掉y-=5)  int key = e.getKeyCode();

private class KeyMonitor extends KeyAdapter{				public void keyPressed(KeyEvent e) {			int key = e.getKeyCode();			switch(key){			case KeyEvent.VK_LEFT: x-=5;  break;			case KeyEvent.VK_UP: y-=5;    break;			case KeyEvent.VK_RIGHT: x+=5; break;			case KeyEvent.VK_DOWN: y+=5;  break;			}		}			}
全部程序:

public class TankClient extends Frame {	public static final int GAME_WIDTH =800;	public static final int GAME_HEIGHT =800;		int x = 30; int y = 30;                //定义在方法外面	Image offScreenImage = null;		public void paint(Graphics g) {		Color c = g.getColor();		g.setColor(Color.RED);		g.fillOval(x, y, 30, 40);		g.setColor(c);				//y += 5;	}	public void update(Graphics g) {		if(offScreenImage == null){			offScreenImage = this.createImage(GAME_WIDTH,GAME_HEIGHT);		}		Graphics gOffScreen = offScreenImage.getGraphics();		Color c = gOffScreen.getColor();		gOffScreen.setColor(Color.GREEN);		gOffScreen.fillRect(0, 0, 800, 600);		gOffScreen.setColor(c);		print(gOffScreen);		g.drawImage(offScreenImage, 0, 0, null);	}	public void lauchFrame(){		this.setSize(GAME_WIDTH,GAME_HEIGHT);		this.setTitle("TankWar");		this.setLocation(80, 60);		this.setVisible(true);		this.addWindowListener(new WindowAdapter(){			public void windowClosing(WindowEvent e) {			    System.exit(0);				}		});		this.setResizable(false);		new Thread(new paintThread()).start();		this.addKeyListener(new KeyMonitor());	}	public static void main(String[] args) {		TankClient tc = new TankClient();		tc.lauchFrame();	}	private class paintThread implements Runnable {   //线程 内部类 为此线程服务		public void run() {			while(true){				repaint();				try {					Thread.sleep(50);				} catch (Exception e) {					e.printStackTrace();				}			}		}			}	private class KeyMonitor extends KeyAdapter{				public void keyPressed(KeyEvent e) {			int key = e.getKeyCode();			switch(key){			case KeyEvent.VK_LEFT: x-=5;  break;			case KeyEvent.VK_UP: y-=5;    break;			case KeyEvent.VK_RIGHT: x+=5; break;			case KeyEvent.VK_DOWN: y+=5;  break;			}		}			}	}

转载地址:http://ulrxb.baihongyu.com/

你可能感兴趣的文章
玩转大数据 运动员如何用科技提升成绩
查看>>
广发银行试水大数据 “精细服务”现雏形
查看>>
大数据让社区生活更方便
查看>>
借助互联网大数据打假
查看>>
东信北邮大数据项目获2014中国通信学会科学技术一等奖
查看>>
大数据塑造新时代公共外交
查看>>
海-两篇
查看>>
整理硬盘
查看>>
ERP&SCM&MES發展歷程
查看>>
风-----
查看>>
系统Server架构图
查看>>
我的简历
查看>>
一种自适应的柔性制造系统优化调度算法
查看>>
现代管理思想与总图设计
查看>>
原创BPR之企业流程分析模型图 FDD
查看>>
PLM技术促进现代模具企业精益化和规模化
查看>>
独一无二的IFS CAD与PDM集成工具发布
查看>>
BPR-FDD 模型图原始档
查看>>
mail
查看>>
团队管理的五项职能--学习笔记加个人理解总结
查看>>