我正在尝试为我的游戏制作图形文本框。我需要触发一个名为addChar(char c)的函数,其中c是以字符形式按下的键。
答案 0 :(得分:0)
在你的update方法中,当调用它时,slick传入的参数之一是GameContainer。假设更新函数看起来像这样:
public void update(GameContainer gc, int delta) throws SlickException
{
...
}
如果您从gc获得输入,则可以询问输入是否按下了特定键。
之后,您可以通过使用输入的getKeyName(int code)方法在您刚刚获得的int上获得按下哪个键的实际表示。最后,用你得到的c调用你想要的方法。
public void update(GameContainer gc, int delta) throws SlickException
{
Input input = gc.getInput();
//here you should create a collection of all the keys you're interested to check
Integer[] collection = {Input.KEY_C, Input.KEY_B, Input.KEY_A};
for (Integer key: collection)
{
if (input.isKeyPressed(key))
{
char c = input.getKeyName(int code);
addChar(char c);
}
}
请注意,getKeyName并不总是返回一个char - 有时它是一个字符串。 (例如,输入将返回“enter”。)
您可能想要添加休息时间;在循环中,如果你只对一个键感兴趣。此外,可以在此处找到所有可能的键和一些有用方法的有用参考: http://slick.ninjacave.com/javadoc/