Java-Slick2D:如何检索上次按下的键?
经过大量的搜索,我还没有找到一个简单的解决办法 我合并了一个键绑定设置部分,我需要知道用户何时按下一个键以及按下了哪个键 我正在使用Java Slick2D游戏引擎。 二维java文档: 示例(不起作用):Java-Slick2D:如何检索上次按下的键?,java,input,game-engine,lwjgl,slick2d,Java,Input,Game Engine,Lwjgl,Slick2d,经过大量的搜索,我还没有找到一个简单的解决办法 我合并了一个键绑定设置部分,我需要知道用户何时按下一个键以及按下了哪个键 我正在使用Java Slick2D游戏引擎。 二维java文档: 示例(不起作用): 在update方法中,传递GameContainer对象。您可以使用方法container.getInput()获取Input对象。你可以用这个 public void update(GameContainer container, StateBasedGame game, int delt
在
update
方法中,传递GameContainer
对象。您可以使用方法container.getInput()
获取Input
对象。你可以用这个
public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException {
if (container.getInput().isKeyPressed(Input.KEY_N))
System.out.println("N key is pressed.");
}
引用对这篇文章的评论:
您不能询问按下了什么键,因为可以是多个键
在BasicGameState
private void setKeyBind(){
if(clickedRectangle == null){
lastKeyChar = '\u0000';
lastKeyCode = 0;
}
if(lastKeyChar != '\u0000'){
clickedRectangle = null;
}
}
public void keyPressed(int key, char c){ //Overrides BasicGameState
if(clickedRectangle != null && lastKeyChar == '\u0000'){
lastKeyChar = c;
lastKeyCode = key;
System.out.println("Key: "+c + " KeyCode: "+key);
}
}
为什么我不能说“先谢谢你?”,对不起,我的无知。太夸张了。有一个关于这个的讨论。基本上,堆栈溢出用于专业问答,像“plz halp”或“谢谢”这样的东西会分散对实际问题的注意力。这指定了一个键,我想知道按下了哪个键。@Markusmoo Slick使用LWJGL的输入,只有一个检查,没有事件。您不能要求按什么键,因为可以选择多个键。正如前面提到的,您不能要求,因为可以选择多个键。@LeeAllan所以我必须检查所有键?如果是这样,我想我有很多打字要做。@Markusmoo你在干什么?也许有办法解决这个问题,如果你能更具体一点,我可以帮你更多。
private void setKeyBind(){
if(clickedRectangle == null){
lastKeyChar = '\u0000';
lastKeyCode = 0;
}
if(lastKeyChar != '\u0000'){
clickedRectangle = null;
}
}
public void keyPressed(int key, char c){ //Overrides BasicGameState
if(clickedRectangle != null && lastKeyChar == '\u0000'){
lastKeyChar = c;
lastKeyCode = key;
System.out.println("Key: "+c + " KeyCode: "+key);
}
}