我目前正在做一个“游戏”,在游戏中,我遇到了控制方面的问题。我目前正在使用数值keyCode值(因为它们在我看来更高效、更漂亮),尽管在尝试用以下值绑定以下键时似乎什么都没有发生:与49,50,和222。
我从http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes获得了代码,这是我遇到的第一个问题。
顺便提一下,我用的是Mac和AZERTY键盘.
提前谢谢你,
实际代码:
void keyPressed() {
if (mode == "azerty") {
if (key == CODED) {
if (keyCode == 38) {
keybool[0] = true;
}
else if (keyCode == 40) {
keybool[1] = true;
}
if (keyCode == 37) {
keybool[2] = true;
}
else if (keyCode == 39) {
keybool[3] = true;
}
if (keyCode == 16) {
keybool[4] = true;
}
if (keyCode == 49) {
keybool[5] = true;
}
if (keyCode == 50) {
keybool[6] = true;
}
if (keyCode == 222) {
keybool[7] = true;
}
}
}
}
void keyReleased() {
if (mode == "azerty") {
if (key == CODED) {
if (keyCode == 38) {
keybool[0] = false;
}
else if (keyCode == 40) {
keybool[1] = false;
}
if (keyCode == 37) {
keybool[2] = false;
}
else if (keyCode == 39) {
keybool[3] = false;
}
if (keyCode == 16) {
keybool[4] = false;
}
if (keyCode == 49) {
keybool[5] = false;
}
else if (keyCode == 50) {
keybool[6] = false;
}
else if (keyCode == 222) {
keybool[7] = false;
}
}
}
}
void keyFunc() {
if (keybool[0]) {
player.move(1);
}
else if (keybool[1]) {
player.move(-1);
}
if (keybool[2]) {
player.turn(-0.5);
}
else if (keybool[3]) {
player.turn(0.5);
}
if (keybool[4]) {
}
if (keybool[5]) {
player.attack(0);
}
else if (keybool[6]) {
player.attack(1);
}
else if (keybool[7]) {
player.attack(2);
}
}
void attack(int attackNum) {
if (attackNum == 0) {
println("SLASH!");
} else if (attackNum == 1) {
println("STAB!");
} else if (attackNum == 2) {
println("PUMMEL!");
}
} 发布于 2014-12-02 15:08:31
使用keyCodes的一种更优雅的方式也降低了错误的概率(遗忘的中断:P),这是:
switch (keyCode) {
case 38: // Up
break;
case 40: // Down
break;
case 37: // Left
break;
case 39: // Right
break;
default:
System.out.println("case " + keyCode + ": // " + KeyEvent.getKeyText(keyCode) + "\nbreak;");
}示例输出:
case 112: // F1
break;
case 113: // F2
break;
case 69: // E
break;
case 10: // Enter
break;
case 18: // Alt
break;
case 115: // F4
break;您可能需要将这一行放入方法中。
您也可能对此方法感兴趣(该方法使用反射),该方法获取扫描代码,这是一个独立于键盘语言布局的键值,但这只适用于Windows。很遗憾,我们没有得到简单的“这是硬件键,这是识别它的数字。”Java中的信息。:(
发布于 2014-02-05 18:58:53
您所链接的代码是javascript密钥代码。为什么关键事件的描述不漂亮?VK_QUOTEDBL,VK_AMPERSAND等。可读性很重要,但不像功能那么重要。
https://stackoverflow.com/questions/21585729
复制相似问题