【问题标题】:Java keyRelease doesn't seem to be functioningJava keyRelease 似乎不起作用
【发布时间】:2018-12-02 08:38:12
【问题描述】:

我正在编写一个简单的游戏教程。当我按下一个按钮来增加速度时,玩家会消失,而如果我添加到 Y / x 值,它会按需要工作。我假设我的问题与代码的密钥释放部分有问题有关。无论如何,如果有人可以帮助我,那将是理想的。谢谢

public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();

    for (int i=0; i<handler.object.size(); i++) {
        GameObject tempObject = handler.object.get(i);
        if (tempObject.getId() == ID.Player) {
            //Key Events for player 1
            if(key == KeyEvent.VK_W) tempObject.setY(tempObject.getY() -2);
            if(key == KeyEvent.VK_S) tempObject.setVelY(2);
            if(key == KeyEvent.VK_A) tempObject.setVelX(2);
            if(key == KeyEvent.VK_D) tempObject.setVelX(-2);
        }
        if (tempObject.getId() == ID.Player2) {
            //Key Events for player 2
            if(key == KeyEvent.VK_UP) tempObject.setVelY(-5);
            if(key == KeyEvent.VK_DOWN) tempObject.setVelY(5);
            if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(5);
            if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-5);
        }

    }

}
public void keyReleased(KeyEvent e) {
    int key = e.getKeyCode();

    for (int i=0; i<handler.object.size(); i++) {
        GameObject tempObject = handler.object.get(i);
        if (tempObject.getId() == ID.Player) {
            //Key Events for player 1
            if(key == KeyEvent.VK_W) tempObject.setVelY(0);
            if(key == KeyEvent.VK_S) tempObject.setVelY(0);
            if(key == KeyEvent.VK_A) tempObject.setVelX(0);
            if(key == KeyEvent.VK_D) tempObject.setVelX(0);
        }
        if (tempObject.getId() == ID.Player2) {
            //Key Events for player 2
            if(key == KeyEvent.VK_UP) tempObject.setVelY(0);
            if(key == KeyEvent.VK_DOWN) tempObject.setVelY(0);
            if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(0);
            if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-0);
        }

    }

}

【问题讨论】:

标签: java key awt release keyrelease


【解决方案1】:

玩家 1 的“W”键按下代码会改变垂直位置而不是速度。

您是否只是在使用“W”按钮进行测试,它会让玩家离开屏幕?

【讨论】:

  • 我知道我正在测试它,但当我尝试改变速度时,它会从屏幕上消失。
猜你喜欢
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 2016-11-29
  • 2016-02-01
  • 2020-09-23
  • 2010-12-05
  • 2011-06-14
  • 2015-01-10
相关资源
最近更新 更多