飞机类设计
飞机是我们游戏中的主物体,需要由玩家直接控制,手段有:键盘、鼠标、触摸屏等等。无论是什么硬件,本质上都是玩家通过硬件改变游戏物体的坐标,从而实现多种多样的效果。
本节中,我们重点使用键盘进行交互。大家学会了使用键盘操控游戏物体,通过鼠标或其他,我们只需要通过相关API的帮助即可轻松实现。
键盘控制原理
键盘和程序交互时,每次按下键、松开键都会触发相应的键盘事件,事件的信息都封装到了KeyEvent对象中。
为了识别按下的键是哪个键, 系统对键盘所有按键做了编号,每个按键都对应相应的数字。 比如:回车键对应数字10,空格键对应数字32等。这些编号,我们都可以通过KeyEvent对象来查询,KeyEvent.VK_ENTER 实际就是存储了数字10。
本游戏中,我们通过“上下左右”键来控制飞机的移动,因此我们可以设定四个布尔类型的变量表示四个基本方向。
boolean left,up,right,down;
当按下左键时,left=true;当松开左键时,left=false;
程序根据四个方向的状态,进行移动,比如:left=true,即飞机向左移动,那么只需x坐标做减法即可。 其他方向同理。
if (left) {
x -= speed;
}
飞机类:增加操控功能
我们为飞机类增加了4个方向,用来控制飞机的移动。同时,为了后续需求,也增加了live变量,它表示飞机是“活的”还是“死的”,“活的”我们就画出飞机,“死的”就不画飞机了。
【示例1】Plane类:增加操控功能
package cn.sxt.game;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
publi