需购买观看

全屏

13.3.2 飞机类:增加操控功能


【专业IT培训机构,真正零首付入学www.bjsxt.com


      我们为飞机类增加了4个方向,用来控制飞机的移动。同时,为了后续需求,也增加了live变量,它表示飞机是“活的”还是“死的”,“活的”我们就画出飞机,“死的”就不画飞机了。

【示例13-15】Plane类:增加操控功能

package cn.sxt.game;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;

public class Plane extends GameObject {

	boolean left, up, right, down;
	boolean live = true;

	// 按下上下左右键,则改变方向值。
    // 比如:按下上键,则e.getKeyCode()的值就是VK_UP,那么置:up=true;
	public void addDirection(KeyEvent e) {
		switch (e.getKeyCode()) {
		case KeyEvent.VK_LEFT:
			left = true;
			break;
		case KeyEvent.VK_UP:
			up = true;
			break;
		case KeyEvent.VK_RIGHT:
			right = true;
			break;
		case KeyEvent.VK_DOWN:
			down = true;
			break;
		default:
			break;
		}
	}

	// 松开上下左右键,则改变方向值。
    // 比如:松开上键,则e.getKeyCode()的值就是VK_UP,那么置:up=false;
	public void minusDirection(KeyEvent e) {
		switch (e.getKeyCode()) {
		case KeyEvent.VK_LEFT:
			left = false;
			break;
		case KeyEvent.VK_UP:
			up = false;
			break;
		case KeyEvent.VK_RIGHT:
			right = false;
			break;
		case KeyEvent.VK_DOWN:
			down = false;
			break;
		default:
			break;
		}
	}

	@Override
	public void drawMySelf(Graphics g) {
		super.drawMySelf(g);
		// 根据方向,计算飞机新的坐标
		if (left) {
			x -= speed;
		}
		if (right) {
			x += speed;
		}
		if (up) {
			y -= speed;
		}
		if (down) {
			y += speed;
		}

	}

	public Plane(Image img, double x, double y, int speed) {
		super(img, x, y);
		this.speed = speed;
	}
}
分类导航
点击按住视频可拖动

缩小

关闭

  • 正在学习
  • 北京总部地址:北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
  • 咨询电话:400-009-1906 010-56233821
  • Copyright 2007-2015 北京尚学堂科技有限公司
  • 京ICP备13018289号-1 京公网安备11010802015183