JAVA开发是男人就坚持10秒_键盘控制原理

      小人是我们游戏中的主物体,需要由玩家直接控制,手段有:键盘、鼠标、触摸屏等等。无论是什么硬件,本质上都是玩家通过硬件改变游戏物体的坐标,从而实现多种多样的效果。

      本节中,我们重点使用键盘进行交互。大家学会了使用键盘操控游戏物体,通过鼠标或其他,我们只需要通过相关API的帮助即可轻松实现。

      键盘和程序交互时,每次按下键、松开键都会触发相应的键盘事件,事件的信息都封装到了KeyEvent对象中。

      为了识别按下的键是哪个键, 系统对键盘所有按键做了编号,每个按键都对应相应的数字。 比如:回车键对应数字10,空格键对应数字32等。这些编号,我们都可以通过KeyEvent对象来查询,KeyEvent.VK_ENTER 实际就是存储了数字10。

      本游戏中,我们通过“上下左右”键来控制小人·1的移动,因此我们可以设定四个布尔类型的变量表示四个基本方向。

      boolean left,up,right,down;

      当按下左键时,left=true;当松开左键时,left=false;

      程序根据四个方向的状态,进行移动,比如:left=true,即飞机向左移动,那么只需x坐标做减法即可。 其他方向同理。

if (left) {

    x -= speed;

}

     我们通过定义KeyMonitor内部类来实现键盘监听功能。定义成内部类是为了方便和外部窗口类(MyGameFrame)交互,可以直接调用外部类的属性和方法。

MyGameFrame类:增加键盘监听功能

//定义为内部类,可以方便的使用外部类的普通属性
    class KeyMonitor extends KeyAdapter {
        @Override
        public void keyPressed(KeyEvent e) {
            plane.addDirection(e);
        }
 
        @Override
        public void keyReleased(KeyEvent e) {
            plane.minusDirection(e);
        }
    }

      我们在launchFrame()方法中,启动键盘监听:

扫描二维码关注公众号,回复: 9126169 查看本文章

启动键盘监听

addKeyListener(new KeyMonitor());//增加键盘的监听

      至此,我们就实现了“四个方向”灵活移动飞机的功能!让我们终于可以和游戏物体直接互动了,大家一定要试试哦。

发布了127 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ZGL_cyy/article/details/104157340
今日推荐