Java:将光标保持在某个区域

2024-01-29

对于玩过 Madness Interactive 的人来说,最令人沮丧的事情之一就是当光标离开游戏区域时,您不小心点击了。这会导致游戏失焦,你的角色会在几秒钟内死亡。为了解决这个问题,我想制作一个可以在后台运行的java应用程序,它将光标保持在屏幕内,直到我按下某个键,例如ESC或其他键。

我看到有两种实现此方法的方法,但我不知道它们是否可行。

  1. 创建一个与 Madness Interactive 渲染区域大小相匹配的 AWT 框架,并使用它来控制光标。
  2. 使用一些脱离上下文的操作系统调用将光标保持在给定区域。

方法#1 的优点:更容易实现框架大小的调整,以便用户可以看到封闭区域的形状和位置。

方法 #1 的潜在问题:AWT 框架可能需要从游戏运行的浏览器窗口中窃取焦点,从而使整个解决方案毫无意义。

我的问题是,这两种方法是否可行?如果没有,有可行的选择吗?

编辑:如果有必要,我愿意使用另一种编程语言。

EDIT2:我可能会为此开发一个浏览器插件,但我以前从未做过这种开发。我会研究一下。


如果您仍然对 Java 工作感兴趣,这里有一个可能的解决方案。

首先,为了将光标限制在一个区域内,您可以使用 Java Robot 类。

mouseMove(int x, int y);

然后,您可以使用 AWT 的 MouseInfo 来获取鼠标光标的位置。

PointerInfo mouseInfo = MouseInfo.getPointerInfo();
Point point = mouseInfo.getLocation();
int x = (int) point.getX();
int y = (int) point.getY();

然后,每当x and y如果鼠标光标的值超出某个点,请使用 Java Robot 类将它们移回来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:将光标保持在某个区域 的相关文章

随机推荐

  • 如何在 Python 中使用 PCA/SVD 进行特征选择和识别?

    我正在跟进Python 中的主成分分析 https stackoverflow com questions 1730600 principal component analysis in python在Python下使用PCA 但我很难确定
  • 上传文件到android市场时出错

    当我在 Android 市场上传我的应用程序时 它显示以下错误 文件无效 错误 转储失败 因为找不到 AndroidManifest xml 当我解压 apk 文件时 AndroidManifest xml 文件就在那里 有什么问题 在an
  • C#.NET 中的 JPEG 2000 支持

    NET 似乎无法使用 GDI 库打开 JP2 Jpeg 2000 文件 我在谷歌上搜索过 但找不到任何库或示例代码来执行此操作 有人有什么想法吗 我真的不想花钱让图书馆来做这件事 除非我必须 似乎我们可以使用自由图像 http freeim
  • PHP:在 for () 循环中创建函数

    有谁知道我如何编写一个函数 该函数能够使用变量的内容作为其名称来创建其他函数 这是我在 php 中讨论的一个基本示例 function nodefunctioncreator for i 1 i lt 10 i newfunctionnam
  • 在 Ruby 中递归列出目录的单行代码?

    在 Ruby 中获取目录 不包括文件 数组的最快 最优化的单行方法是什么 包含文件怎么样 Dir glob for directories Dir glob for all files 代替Dir glob foo 你也可以写Dir foo
  • Python 支持短路吗?

    Python 支持布尔表达式中的短路吗 是的 两个and and or运算符短路 参见the docs http docs python org library stdtypes html highlight short 20circuit
  • 当我指定凭据时,为什么我的 Http 客户端会发出 2 个请求?

    我创建了 RESTful Web 服务 WCF 在其中检查每个请求的凭据 我的一个客户是 Android 应用程序 服务器端的一切似乎都很棒 我收到请求 如果它有正确的标头 我会处理它 等等 现在我创建了使用此服务的客户端应用程序 这就是我
  • java jprogressbar 在繁重操作期间挂起

    我正在编写一个 java 程序 在调用大量使用 CPU 的方法之前 我会显示一个带有 JProgressBar 的框架 虽然我在调用方法之前显示它 但直到方法结束才显示 JProgressBar 进度条 还 没有以任何方式与该方法交互 这就
  • 如何将汉字一一拆分?

    如果没有特殊字符 如空白 等 在名字和姓氏之间 那么下面如何拆分汉字呢 use strict use warnings use Data Dumper my fh DATA my fname 小三 my lname 张 while my n
  • 监控浏览器控制台中的所有 JavaScript 事件

    是否可以监听所有的javascript事件 我试图猜测 AJAX 请求修改 DOM 后是否会触发事件 With firebug http getfirebug com wiki index php Command Line API moni
  • Git 恢复未按预期工作

    我遇到了问题git revert命令 我使用 Ubuntu 12 04 Linux 和 Git 版本 1 7 9 5 我创建了一个全新的b test repo在我的本地电脑上 从远程跟踪它origin b test repo 我在本地创建了
  • 在 C# 中创建部分(或有界)FileStream

    我有一个 FileStream 它由放入一个文件中的多个文件组成 并且我有一个文件长度的列表 换句话说 我可以轻松计算所有文件的位置和长度 我想要创建的是一个 Open 方法 它接受文件索引并返回仅包含该文件的流 目前我已经使用内存流实现了
  • 如何从maven pom文件构建项目

    我有一个开源项目的 Maven pom 文件 这个pom文件包含所有信息 比如它所依赖的其他jar等 我安装了maven 创建一个 samprj 目录并将 pom 文件复制到该目录中 cd 进入该目录并运行 mvn 命令而不带任何参数 但我
  • 什么是 git 边界提交

    The git log command https git scm com docs git log has a boundary选项 这会导致程序 输出排除的边界提交 但什么是边界提交 我什么时候可以将它们包含在输出中 边界提交是限制修订
  • 为什么我们需要 onUpgrade(); SQLiteOpenHelper 类中的方法

    我正在关注这个教程 http www androidhive info 2011 11 android sqlite database tutorial http www androidhive info 2011 11 android s
  • Excel 宏第一次工作,然后下次就很慢

    因此 在未共享的工作表中运行我的宏时 它工作得很好 没有任何问题 只要我共享它 通常第一次就会运行良好 但第二次需要永远运行 如果我第一次运行宏后关闭工作簿并重新打开它将再次运行良好 我尝试清除剪贴板 还尝试了使用宏清除剪贴板的另一个版本
  • dax 中选取不同值的动态总和

    以下是样本数据 Week Practice Type capacity Gen 1 BI c 80 0 1 BI c 80 1 1 BI sc 160 1 1 BI pc 240 0 1 BI pc 240 3 1 BI mc 1160 1
  • 如何在 pandas 中填充直到一天结束?

    我有一个pandas TimeSeries与日内指数 如何分别填充 前向填充 每天的 NaN 值 以这个系列为例 2013 03 27 22 07 00 04 00 1 0 2013 03 27 22 08 00 04 00 nan 201
  • 当我们从 Fragment 类调用 facebook 或 twitter 时如何处理后退按钮?

    我想从 Fragment 连接 Facebook 和 Twitter 但是当我从 Facebook 或 Twitter 返回时 应用程序已关闭 我想留在该应用程序中 我的代码在这里 Override public View onCreate
  • Java:将光标保持在某个区域

    对于玩过 Madness Interactive 的人来说 最令人沮丧的事情之一就是当光标离开游戏区域时 您不小心点击了 这会导致游戏失焦 你的角色会在几秒钟内死亡 为了解决这个问题 我想制作一个可以在后台运行的java应用程序 它将光标保