当前位置: 首页 > 知识库问答 >
问题:

关键监听器关注Java游戏

江鹏
2023-03-14
public final void initScreen(DisplayMode dm, boolean fs, boolean vs)
{
    screen = new EScreen (dm, fs, vs); 
    canvas = new EGameCanvas (screen);
    canvas.setFocusable (false);
    screen.add(canvas);

    keyMapManager = KeyMapManager.getInstance (this);

    if (fs) {
        screen.setFullScreen ();
    }
    else {
        screen.setWindowed ();
    }
}
public boolean setActiveKeyMap(String newKeyMap)
{
    if (keyMaps.containsKey(newKeyMap)) {
        screen.removeKeyListener (activeKeyMap);
        activeKeyMap = keyMaps.get (newKeyMap);
        screen.addKeyListener (keyMaps.get (newKeyMap));

        return true;
    }
    return false;
}
public void keyPressed(KeyEvent ev) {
    if (ev.getKeyCode() == KeyEvent.VK_ESCAPE)
        game.setIsRunning (false);
}
screen.setFocusTraversalKeysEnabled (false);

最后,正如你所看到的,我的游戏同时处理全屏模式和窗口模式。这两个问题都发生。

共有1个答案

伯向晨
2023-03-14

我对我的一个游戏有相同的配置:将keyListener添加到画布中,而不是JFrame

如果您仍然希望JFrame发送事件,也可以将它添加到JFrame和画布(同一个keyListener)中

canvas.addKeyListener(this);

*this:假设您所处的对象实现了KeyListener接口

 类似资料:
  • 在Android上怎么做? 感谢您发布一些有用的资源。

  • 如何在jcombobox中添加键事件侦听器,以便它接受EX的整个字符串。如果我添加's',它应该在数据库中搜索以's'开头的字符串,如果没有结果,那么它应该等待用户在组合框中键入其他字符来获得类似的结果

  • 本文向大家介绍vue监听键盘事件的相关总结,包括了vue监听键盘事件的相关总结的使用技巧和注意事项,需要的朋友参考一下 按键修饰符 在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: 你可以直接将 KeyboardEvent.key 暴露的任意有效按键名转换为 kebab-case 来作为修饰符。 为了在必要的情况下支持旧浏览器,Vue 提供了

  • ap.onSocketClose(CALLBACK) 监听 WebSocket 关闭事件。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style> .output{ display:block; max-width:

  • 问题内容: 有没有办法监听Java中的任何异常? 我的目的是创建一个侦听和收集Java中所有出现的错误的库。有什么办法吗? 问题答案: 您可以通过Thread.UncaughtExceptionHandler捕获每个未捕获的异常。如果那还不够的话,我可能会建议一些AOP /字节码编织解决方案 来对每个创建的异常进行监视。

  • 所以我无法编译这段代码。我正在用一本过时的书来学习,到目前为止,大多数东西都很有效。我只遇到了几个通过谷歌搜索很容易解决的障碍,但我想这一个要复杂一些。下面是引发错误的两段代码。 在ckl.calculatorKeypadListener的两个实例中,我都收到一个错误,说找不到符号。这是我唯一收到的两个错误,我相信这是由于Java的更新。有人能帮助我做错了什么吗?如果可能的话,我不想重写整个东西,