我不知道我一直在搜寻的是什么问题,但我必须想象我在搜索错误。是否有办法的人的任何实例做了以下内容:允许用户更改应用程序的键盘按键
上的选项屏幕,允许的用户改变什么键在他们的应用程序做什么:
-i.e.将箭头更改为W键,或将箭头更改为S键。 WASD与ULDR。
我并不懒惰,比如说,我刚刚看到有这么多游戏,并且我不想重新发明轮子。
任何人都可以给我一个如何做到这一点的例子或请连接我吗?非常感谢。
我不知道我一直在搜寻的是什么问题,但我必须想象我在搜索错误。是否有办法的人的任何实例做了以下内容:允许用户更改应用程序的键盘按键
上的选项屏幕,允许的用户改变什么键在他们的应用程序做什么:
-i.e.将箭头更改为W键,或将箭头更改为S键。 WASD与ULDR。
我并不懒惰,比如说,我刚刚看到有这么多游戏,并且我不想重新发明轮子。
任何人都可以给我一个如何做到这一点的例子或请连接我吗?非常感谢。
看一看这里的Java回调引用http://www.javaworld.com/javatips/jw-javatip10.html
的想法是,你创建的键和回调像以前的网站(字典参考http://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html)所描述的字典。
只有一个方法回调函数声明:
public interface MovementCallbackInterface {
public void method();
}
然后创建一个类,如:
public class MoveForward implements MovementCallbackInterface {
public void method() {
//Move forward code
}
,然后创建字典:
Dictionary<KeyEvent, MovementCallbackInterface> d;
在运行时为每键您指定回拨如
MoveForward mf = new MoveForward();
d.put(KeyEvent.VK_W, mf);
当您想切换键时,您可以修改词典中的键分配以指向新的回调。
d.remove(KeyEvent.VK_W);
d.put(KeyEvent.VK_U, mf);
然后每按一个键,你搜索在字典中的键,然后调用MovementCallbackInterface对象的方法时,像
d.get(KeyEvent.VK_W).method().
也许有一个最快的方式,在C++中,你可以使用函数指针或c#中的委托,它只包含函数而不包含整个类。无论如何,这个方法在java中工作。
真棒谢谢,我会给这个镜头 – KisnardOnline
您想更改哪个应用程序? –
我有一个游戏,我想让我的用户选择哪个键在游戏中“向上移动”。也许这样做更有意义,它并不是要改变键盘的功能,而是改变哪些键做什么。 – KisnardOnline