- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款 Java 2D 游戏,它最多需要同时按下六个键。该游戏适用于同一键盘上的两个玩家同时玩。
但是,我运行该程序的所有三台计算机都只允许一次最多持有三个键。他们都难以对按住三个以上的键使用react。似乎在已经按住三个键后按下一个新键,要么取消其他键的按住,要么被忽略。
有人告诉我这是硬件问题。大多数键盘一次不能处理三个以上的键。但是很多游戏确实需要这样做,而且它们不需要特殊的游戏键盘就可以在我的电脑上正常运行。
因此必须有一个解决方案,使游戏可以在任何标准键盘上玩。
如果有,请您向我解释一下如何在我的程序中编写代码?(我使用键绑定(bind))。
游戏的控制:
玩家 1
玩家 2
相关代码:
按键绑定(bind)
部分:
// An action for every key-press.
// Each action sets a flag indicating the key is pressed.
leftAction = new AbstractAction(){
public void actionPerformed(ActionEvent e){
keysPressed1[0] = true;
}
};
rightAction = new AbstractAction(){
public void actionPerformed(ActionEvent e){
keysPressed1[1] = true;
}
};
// And so on...
// ....
// An action for every key-release.
// Each action sets a flag indicating the key was released.
// This is only necessary for some of the keys.
leftReleased = new AbstractAction(){
public void actionPerformed(ActionEvent e){
keysPressed1[0] = false;
}
};
rightReleased = new AbstractAction(){
public void actionPerformed(ActionEvent e){
keysPressed1[1] = false;
}
};
// And so on...
// ....
// Binding the keys to the actions.
inputMap.put(KeyStroke.getKeyStroke("UP"),"upAction");
inputMap.put(KeyStroke.getKeyStroke("LEFT"),"leftAction");
// etc...
actionMap.put("upAction",upAction);
actionMap.put("leftAction",leftAction);
// etc...
在Board
类中。它包含大部分游戏代码。这部分检查标志并对按键和释放使用react。
keysPressed1 = tank1.getKeys(); // get flags-array of tank1.
keysPressed2 = tank2.getKeys(); // get flags-array of tank2.
if(keysPressed1[0]==true) // if LEFT is pressed.
tank1.setAngle(tank1.getAngle()-3);
if(keysPressed1[1]==true) // if RIGHT is pressed.
tank1.setAngle(tank1.getAngle()+3);
if(keysPressed1[2]==true){ // if UP is pressed.
tank1.setDX(2 * Math.cos(Math.toRadians(tank1.getAngle())));
tank1.setDY(2 * Math.sin(Math.toRadians(tank1.getAngle())));
}
if(keysPressed1[2]==false){ // if UP is released.
tank1.setDX(0);
tank1.setDY(0);
}
// And the same for the second player's keys...
这主要是在我的程序中对按键和按键释放使用react的方式。当按下或释放一个键时,将设置一个标志。 Board
类在每个游戏循环周期读取标志并做出相应的 react 。
正如我所说,程序无法对同时按住 3 个以上的键做出正确 react ,这可能是键盘的原因。有没有办法编写解决方案?
帮助将不胜感激。非常感谢
最佳答案
你确定你没有遇到重影吗?如果出现重影,则为硬件限制。
这是一个测试器 -> http://www.microsoft.com/appliedsciences/content/projects/KeyboardGhostingDemo.aspx
这是重影的描述 -> http://www.microsoft.com/appliedsciences/antighostingexplained.mspx
关于Java游戏: How to overcome a hardware-limitation of a keyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970733/
我正在开发一款 Java 2D 游戏,它最多需要同时按下六个键。该游戏适用于同一键盘上的两个玩家同时玩。 但是,我运行该程序的所有三台计算机都只允许一次最多持有三个键。他们都难以对按住三个以上的键使用
我是Android Ffltter的新手,我想问一下关于使用底部导航栏的问题,我有2个页面,每个页面都有不同的底部导航栏,我尝试从其中一个项目调用第二个页面,输出重叠,我的问题是:
我想使用 R 中的“neuralnet”包来训练神经网络。训练数据集是一个包含 8 个预测变量 (x1,x2,x3,...,x8) 和 1 个响应变量 (y) 的数据框。数据如下: data
谢谢阅读。 我正在使用 Unity 框架在我的应用程序(ASP.Net MVC)中实现依赖注入(inject)。 有时我想避免服务之间存在一些循环依赖关系。 所以我正在寻找解决方案:) 我的案例 好吧
我在模块中有以下代码: {-# LANGUAGE TemplateHaskell #-} module Alpha where import Language.Haskell.TH import Da
我在一些商店中使用 Google Analytics(分析)增强型电子商务。在目录页面上,我有很多产品,我需要跟踪它们的印象。我不会一一跟踪每个产品,因为它会引起许多请求,而是通过 .ec:addIm
我正在开发一款应用程序,允许用户自己创建和管理用户组。 问题是我想存储哪个用户向任何组添加了新成员。 这些是我目前的模型: class UserManagedGroup(Group): lea
我在我的项目中使用了多个 Android 库和模块。每个都有自己的 v4.Support 库。我收到了 java.util.zip.ZipException: duplicate entry 。 当我
我通过长城购买了 VPN。我只想知道如何为 OS X 的 GitHub 客户端设置代理。 在shell中是这样的 $ ssh -T git@github.com Warning: Permanentl
为了生成 PDF 发票,我使用 fpdf lib 并将重复文本存储在 mySQL 数据库中。 当我将此文本存储在一个简单文件中时,我需要将其保存为 Latin1 编码,因为 fpdf 使用 Latin
来自 Linux 发行版并从网络上的许多示例复制/粘贴,我正在执行以下操作以在我的 XSL 文件中包含 DocBook 样式(使用 xsltproc 处理): ... 只要“docbook.xs
我正在使用 C# 编写 Winform 应用程序。在尝试创建文本文件时,我收到错误“客户端不拥有所需的权限”。我用谷歌搜索了一下,与用户的权限有关。简而言之,我不允许在我选择的路径(C:/)中创建文件
我正在写一篇论文,要求我将引用书目分成不同的部分,到目前为止我一直在使用 Multibib这非常适合我想做的事情: \newcites{ltex}{\TeX\ and \LaTeX\ Referenc
RSACryptoServiceProvider 中存在一个奇怪的设计问题: 虽然可以使用 RSACryptoServiceProvider.SignData 对非常大的文件进行签名: public
这是我要抓取的链接: http://www.prudential.com.hk/PruServlet?module=fund&purpose=searchHistFund&fundCd=MMFU_U
这个问题在这里已经有了答案: Problem with EF OrderBy after migration to .net core 3.1 (1 个回答) 关闭 2 年前。 在 MS SQL S
我知道这不是第一次解决这个错误,但看了很多帖子后,我不确定我哪里出错了。我正在尝试启动我下载的 Tomcat 8。我在 Java 世界中的经验为零。现在我缺少 Microsoft MSI 安装向导:-
在我们努力将数百个 ksh 脚本从 AIX、Solaris 和 HPUX 移植到 Linux 的过程中,我发现了另一个问题。参见 here对于之前的问题。 这段代码: #!/bin/ksh if [
我是一名优秀的程序员,十分优秀!