首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为java更新KeyEvent中的当前KeyEvent?

如何为java更新KeyEvent中的当前KeyEvent?
EN

Stack Overflow用户
提问于 2017-01-08 07:24:18
回答 1查看 108关注 0票数 0

如果有人能帮我完成我的代码,我会非常感激,因为我在开发游戏时正在学习代码。

  • 我试图使一个基本的乒乓球游戏的控制感觉顺利,但我有这个问题的keyEvent/keyPressed。我用A向左,D向右,当我按住D然后按A,不松开D它就会注意到变化,然后向左走,但是一旦我把D放下来,keyEvent就不会注意到D被按住了,直到你再次按D时,网拍才会移动。是否有办法让keyEvent或keyPressed更新目前发生的情况并对其作出反应?

这是代码的片段..。附注:我刚开始使用堆栈溢出,而不是一个流利的java程序员,我还在学习。我很抱歉如果我的问题很含糊或不明确..。同时,move(1)使网拍坐标移动x+=1,并移动(-1) x-=1*/

修正attempt#1: 我试着在更改后使用返回语句,希望它能起作用,没有结果.

代码语言:javascript
复制
public void keyPressed(KeyEvent e) {
    //MOVE LEFT
    if (e.getKeyCode() == KeyEvent.VK_A){               
        if(e.getKeyCode() == KeyEvent.VK_D){
            move(1);
            //maybe update?
            return;
        }                           
        else
            move(-1);           
    }       
    //MOVE RIGHT
    if (e.getKeyCode() == KeyEvent.VK_D){                   
        if(e.getKeyCode() == KeyEvent.VK_A) {
            move(-1);
            //maybe update?
            return;
        }
        else
            move(1);
    }               
}
EN

回答 1

Stack Overflow用户

发布于 2017-01-08 08:12:00

处理这种情况的最佳方法是创建一个布尔数组,并将所有的值存储在其中,然后稍后使用它。这样可以更顺利地处理更新,并使您有更多的组织。在顶部类型创建数组

代码语言:javascript
复制
public static boolean[] keys = new boolean[999];

然后在按下的方法做

代码语言:javascript
复制
public void keyPressed(KeyEvent e) {
    keys[e.getKeyCode()] = true;
}

最后在释放法中

代码语言:javascript
复制
public void keyReleased(KeyEvent e) {
    keys[e.getKeyCode()] = false;
}

然后在后面引用它,只需使用

代码语言:javascript
复制
[class].keys[KeyEvent.[key]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41530460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档