在 Java 中判断鼠标是否在矩形内

2023-12-20

我开始开发一个游戏,我需要能够查看我的鼠标是否在矩形内, 我尝试过使用 .contains 作为矩形,但我似乎无法让它工作,我将在下面粘贴我的代码,任何帮助将不胜感激! :)

public boolean isMouseOver(GameContainer gc){
    r = new Rectangle(getX(), getY(),getWidth(),getHeight());
    Input input = gc.getInput();
    xpos = input.getMouseX();
    ypos = input.getMouseY();
    return r.contains(xpos, ypos);
}

这是我尝试使用的方法,但是当鼠标位于矩形内时它不断返回 false。显然,我进一步启动了 xpos、ypos 和矩形,并在我尝试使用它的类的 update 方法中调用了该方法。


鼠标有两个点,即 x 和 y 位置。

int mouseX = gc.getInput().getMouseX();
int mouseY = gc.getInput().getMouseY();

我们有一个矩形

Rectangle rec = new Rectangle( 100, 100, 200, 200 );

所以我们可以检查

if ( mouseX >= rec.getMinX() && mouseX <= rec.getMaxX )   // check if X is within range
   && ( mouseY >= rec.getMinY() && mouseY <= rec.getMaxY) // check if y is within range

或者现在我们知道我们的 X 值必须大于矩形的低值但小于其高值,并且 Y 的值相同,让我们检查 contains 函数

contains(float xp, float yp, float xr, float yr, float widthr, float heightr)

xp - The x coordinate of the point to check
yp - The y coordinate of the point to check
xr - The x coordinate of the rectangle
yr - The y coordinate of the rectangle
widthr - The width of the rectangle
heightr - The height of the rectangle

所以我想说

contains( mouseX, mouseY, rec.getMinX(), rect.getMinY(), rec.getWidth(), rec.getHeight() )

也许这里出了什么问题?

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

在 Java 中判断鼠标是否在矩形内 的相关文章

随机推荐

  • HTML5 拖放行为

    我广泛使用了 HTML5 原生拖放功能 它几乎完全可以正常运行 只有一个小例外 当任何东西被拖过页面时 我试图突出显示我的拖放区 我最初尝试通过将 jQuery 侦听器放在文档正文上来实现此目的 如下所示 body live dragove
  • 使用 python-can 时出现 AttributeError (模块“can”没有属性“interface”)

    运行以下代码时出现错误 import can importing CAN module import time bus1 can interface Bus bustype vector channel 0 bitrate 500000 a
  • 将字符串保存为html文件android

    我的问题很简单 如何将字符串 HTML 保存为内部存储中的 html 文件 请让我知道如何执行此操作 可以说我有的字符串是 string html This is random text 试试这个 private void saveHtml
  • 检查 GPS 经纬度点是否位于 Google 地图中的道路上

    我正在 Android 中开发一个导航应用程序 我想在用户越野时提示他 那么 如果我有 GPS 纬度 经度点 是否可以确定该点是否位于道路上 是否有 API 支持此类检查 一般而言 这是在所有道路上完成的 而不是在具有指定路径 折线的情况下
  • 应用内购买“准备提交”,但不允许我提交

    我有一些应用程序内购买设置 应用内购买都经过测试 并且运行良好 但我无法提交它们进行审核 我提交了应用程序二进制文件以供审核 然后访问了应用内购买部分 所有应用内购买均显示 准备提交 但 提交审核 按钮呈灰色且不可点击 当苹果审查实际应用程
  • 是否有 JNDI 命名空间约定?

    我已经下载了 JBoss EAP 6 1 我将添加一个新的数据源 我必须将数据源绑定到 JNDI 名称 通过读取示例数据源的 JNDI 名称 它是 java jboss datasources ExampleDS 我看到他们用过dataso
  • PHP 执行时间导致响应延迟[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我故意在我的服务器上运行一个持续长达 60 秒的 php 脚本 每次运行之间都有延迟 问题是 在脚本执行期间发送到服务器的任何其他请求都会
  • CMake:如何在 CMakeLists.txt 中使用 bash 命令

    我想知道如何在 CMakeLists txt 中使用 bash 命令 我想要的是使用以下命令检索处理器的数量 export variable getconf NPROCESSORS ONLN 并使用类似以下内容将 NB PROCESSOR
  • 具有相同对象名称的两个命名空间

    我有两个命名空间 System Numerics 和 UnityEngine 两者都有类型Vector3 所以现在当我想使用它时我必须在它之前声明哪个名称空间 像这样 protected struct CVN public Complex
  • Angular 6 自定义元素在 IE11 和 Firefox 上失败,出现语法和影子 dom 错误

    我创建了一个新的 angular cli 项目 其中使用自定义元素这些方向 https medium com tomsu building web components with angular elements 746cd2a38d5b
  • Java有using语句吗?

    Java有没有可以在hibernate中打开会话时使用的using语句 在 C 中 它类似于 using var session new Session 因此该对象超出范围并自动关闭 Java 7 推出自动资源块管理 http www in
  • 如何在.net core mvc视图中缩小?

    在我用 net core mvc制作的网站上 当我们打开网站并点击页面源代码视图时 如何将第二张图所示的长代码以缩小的形式进行处理 将 Web Markup Min 添加到 ASP NET Core 应用程序 WebMarkupMin是一个
  • 如何从 NSDate 计算年龄

    我正在开发一个应用程序 需要根据某人的生日查找其年龄 我有一个简单的NSDate但我怎么找到这个NSDateFormatter NSInteger ageFromBirthday NSDate birthdate NSDate today
  • 使用类型参数与抽象类型实现类型类

    继从见证抽象类型实现类型类 https stackoverflow com questions 64399785 witness that an abstract type implements a typeclass 64401748 n
  • 在模板函数返回类型上使用 std::enable_if 来利用 SFINAE - 编译错误

    下面的代码 include
  • iPhone:strace、dtruss、dtrace 或同等工具?

    有谁知道是否有类似的东西strace dtruss or dtrace对于iPhone tester iPhone tmp root apt cache search dtruss tester iPhone tmp root apt ca
  • PHP:检查谁阅读了发送的电子邮件?

    我正在向某些用户发送电子邮件 并想知道谁读过它 这意味着如果有人读过该电子邮件 那么将维护一个日志文件 其中包含该用户的电子邮件地址以及日期 时间 IP 为此 我发送一个带有电子邮件 html 模板 的 javascript 函数 当用户打
  • 为什么第一个函数调用的执行速度比所有其他顺序调用快两倍?

    我有一个自定义 JS 迭代器实现和用于测量后一个实现的性能的代码 const ITERATION END Symbol ITERATION END const arrayIterator array gt let index 0 retur
  • 在 Lotus Notes 中使用 C# 将电子邮件保存为 eml

    我需要将 Lotus Notes 电子邮件导出 保存到 硬盘 我找到了如何将附件保存到硬盘的方法 但我不知道如何保存整个电子邮件的方法 下面的代码显示了我如何导出附件 您能建议我如何修改它以保存电子邮件吗 PS 我是编程新手 using S
  • 在 Java 中判断鼠标是否在矩形内

    我开始开发一个游戏 我需要能够查看我的鼠标是否在矩形内 我尝试过使用 contains 作为矩形 但我似乎无法让它工作 我将在下面粘贴我的代码 任何帮助将不胜感激 public boolean isMouseOver GameContain