【发布时间】:2014-03-02 09:13:46
【问题描述】:
我目前正在开发一个“游戏”,在其中我遇到了控件问题。我目前正在使用数字 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!");
}
}
【问题讨论】:
-
您可以发布您尝试运行的代码吗?
-
你的问题是什么?
-
什么是模式?为什么使用 == 来比较字符串?您应该改用 equals() 函数。
-
如果您有超过 3 个备选方案,请使用 switch 语句!
-
在什么平台上运行?阅读纯字符有什么问题? (不,“性能”并没有削减它,除非您显示 测量结果 证明差异与您的使用相关。)
标签: java processing numerical