JAVA面向对象..doc
文本预览下载声明
Java OOP Day04
Top
贪吃虫游戏——实现Worm方向改变
贪吃虫游戏——实现Food抓取
DMS2.0——完成DMSFrame窗体的设计和布局
DMS2.0——完成DMSFrame监听方法的实现
1 贪吃虫游戏——实现Worm方向改变
1.1 问题
如何利用键盘的方向键驱动贪吃虫的运行方向.
1.2 方案
利用Swing的监听键盘事件的方法监听键盘事件, 根据获取的按键值驱动贪吃虫向不同的方向运行:
????public void action() {
????????worm = new Worm();
????????food = randomFood();
????????timer.schedule(new CreepTask(this), 0, 200);
????????requestFocus();//请求当前绘图面板获取输入焦点
????????//添加键盘事件监听器
????????addKeyListener(new KeyAdapter() {
????????????//在有按键按下时候执行
????????????public void keyPressed(KeyEvent e) {
????????????????int keyCode = e.getKeyCode();//获取按下的按键值
????????????????switch (keyCode) {//检查按键值
????????????????case KeyEvent.VK_DOWN://方向键 下
????????????????????worm.changeDirection(Worm.DIRECTION_DOWN);
????????????????????creepForFood();
????????????????????break;
????????????????case KeyEvent.VK_UP:
????????????????????worm.changeDirection(Worm.DIRECTION_UP);
????????????????????creepForFood();
????????????????????break;
????????????????case KeyEvent.VK_LEFT:
????????????????????worm.changeDirection(Worm.DIRECTION_LEFT);
????????????????????creepForFood();
????????????????????break;
????????????????case KeyEvent.VK_RIGHT:
????????????????????worm.changeDirection(Worm.DIRECTION_RIGHT);
????????????????????creepForFood();
????????????????????break;
????????????????}
????????????}
????????});
????}
1.3 实现
重构Worm类, 增加改变运行方向的方法:
????/** 改变方向 */
????public boolean changeDirection(int direction) {
????????if (direction + currentDirection != 0) {
????????????currentDirection = direction;
????????????return true;
????????}
????????return false;
????}
重构WormStage类的action方法, 增加对键盘事件的监听
????public void action() {
????????worm = new Worm();
????????food = randomFood();
????????timer.schedule(new CreepTask(this), 0, 200);
????????requestFocus();//请求当前绘图面板获取输入焦点
????????//添加键盘事件监听器
????????addKeyListener(new KeyAdapter() {
????????????//在有按键按下时候执行
????????????public void keyPressed(KeyEvent e) {
????????????????int keyCode = e.getKeyCode();//获取按下的按键值
???????
显示全部