经过大量的搜索,我找不到解决这个问题的简单方法。
我正在整合一个键盘设置部分,我需要弄清楚用户何时按下一个键以及按下了哪个键。
我正在使用Java Slick2D游戏引擎。 Slick2D java文档:http://slick.ninjacave.com/javadoc/
示例(没有工作):
private void setLastKey(GameContainer container){
if(clickedRectangle != null){
lastKeyPressed = container.getInput();
}else{
lastKeyPressed = null;
}
}
答案 0 :(得分:0)
在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.");
}
对此帖发表评论:
你不能要求按下什么键,因为多个键可以。
答案 1 :(得分:0)
覆盖keyPressed(int key, char c)
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);
}
}