java - 我应该如何在高级 java 游戏中对鼠标/按键输入进行编程?

标签 java input

我是一名自学成才的程序员,所以我不知道正确的做事方法。我制作了小行星和蛇等简单游戏,但在这些游戏中,您可以轻松修改 keyevent 函数中的变量。以下是我在简单的小行星游戏中的做法:

/*
 * key listener events
 */
public void keyReleased(KeyEvent k){
    int keyCode = k.getKeyCode();

    switch(keyCode){

        case KeyEvent.VK_LEFT:
            turnLeft = false;
            break;

        case KeyEvent.VK_RIGHT:
            turnRight = false;
            break;

        case KeyEvent.VK_UP:
            accel = false;
            break;

        case KeyEvent.VK_1:
            cls = true;
            break;
        case KeyEvent.VK_ENTER:
            break;
        case KeyEvent.VK_SPACE:
            fire = false;
    }
}
public void keyTyped(KeyEvent K){}
public void keyPressed(KeyEvent k){
    int keyCode = k.getKeyCode();

    switch(keyCode){

        case KeyEvent.VK_LEFT:
            turnLeft = true;
            break;

        case KeyEvent.VK_RIGHT:
            turnRight = true;
            break;

        case KeyEvent.VK_UP:
            accel = true;
            break;

        case KeyEvent.VK_1:
            cls = false;
            break;
        case KeyEvent.VK_ENTER:
            clearAllBullets();
            break;
        case KeyEvent.VK_SPACE:
            fire = true;
    }
}

如果我要制作一个更高级的游戏(带有主菜单、选项、主游戏等),我应该如何进行键/鼠标输入?

此外,如果我要进入单人游戏,我是否应该将所有游戏代码放入一个类中?有没有办法将单人游戏代码放入单独的类中,并以某种方式让按键输入仍然修改变量等?

感谢您的宝贵时间!

附注任何链接或来源都非常感谢。 :D

最佳答案

“有没有办法将单人游戏代码放入单独的类中,并以某种方式让按键输入仍然修改变量等?”

是的,有办法封装所有基于事件的行为 - http://en.wikipedia.org/wiki/Mediator_pattern但是,它会使您的代码变得非常复杂,因此首先尝试以更“正常”的方式实现您的游戏。

无论如何 - 您将需要其他类来呈现游戏的域模型(玩家、游戏板、用户界面等...)

关于java - 我应该如何在高级 java 游戏中对鼠标/按键输入进行编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412222/

相关文章:

java - Eclipse junit 测试在同一个项目中

python - setText() 在 Python 中不起作用

选中单选按钮标签的 CSS

Silverlight - 输入格式不正确。 - 哪个资源文件有这段文字?

c++ - C++、cin、cout、threads 和 sync_with_stdio 的损坏输出

java - java中如何从文件名中选取特定位置

java - 使用 Nexus3 模拟阶段存储库

java - 找不到类,未找到类定义

java - 为什么这段代码在 kotlin(Android) 中选择了错误的 dayofMonth?

objective-c - 如何区分用户点击的键盘事件和生成的键盘事件?