Java冲突检查不支持';I don’我没有按预期工作

Java冲突检查不支持';I don’我没有按预期工作,java,lwjgl,collision,Java,Lwjgl,Collision,我正在用Java编写一个游戏。 我使用LWJGL作为引擎,因为它似乎适合我的需要 我刚刚实现了主菜单,并为菜单元素编写了一个类, 在那之后,我编写了在屏幕中央显示元素的代码,然后我尝试编写一些代码来检查鼠标是否悬停在按钮上 可悲的是,它没有像预期的那样工作。 碰撞检查似乎搞砸了 希望你能帮忙:) 以下是渲染菜单并检查冲突的代码: public static void RenderMenu() { int LineHeight = 45; int StartOffset = (Di

我正在用Java编写一个游戏。 我使用LWJGL作为引擎,因为它似乎适合我的需要

我刚刚实现了主菜单,并为菜单元素编写了一个类, 在那之后,我编写了在屏幕中央显示元素的代码,然后我尝试编写一些代码来检查鼠标是否悬停在按钮上

可悲的是,它没有像预期的那样工作。 碰撞检查似乎搞砸了

希望你能帮忙:)

以下是渲染菜单并检查冲突的代码:

public static void RenderMenu()
{
    int LineHeight = 45;
    int StartOffset = (Display.getHeight() / 2) - ((elements.length * LineHeight) / 2);
    int current = 0;

    int MouseX = Mouse.getX();
    int MouseY = Mouse.getY();

    boolean TitleDrawn = false;

    for (MenuElement elem : elements)
    {
        Engine.DrawStringCentered(elem.Text, StartOffset + (LineHeight * current));

        elem.X = (Display.getWidth() / 2) - (elem.GetWidth() / 2);
        elem.Y = StartOffset + (LineHeight * current);

        if ((MouseX >= elem.X && MouseX <= elem.X + elem.GetWidth()) &&
            (MouseY >= elem.Y && MouseY <= elem.Y + elem.GetHeight()))
        {
            Engine.DrawTitle(elem.Text);
            TitleDrawn = true;
        }

        current++;
    }

    if (!TitleDrawn) Engine.DrawTitle("Backsteine");
}
publicstaticvoidrendermenu()
{
int LineHeight=45;
int StartOffset=(Display.getHeight()/2)-(elements.length*LineHeight)/2);
int电流=0;
int MouseX=Mouse.getX();
int MouseY=Mouse.getY();
布尔TitleDrawn=false;
for(菜单元素元素:元素)
{
Engine.DrawStringCentered(elem.Text,StartOffset+(线宽*当前));
elem.X=(Display.getWidth()/2)-(elem.getWidth()/2);
元素Y=开始设置+(线宽*电流);

如果((MouseX>=elem.X&&MouseX=elem.Y&&MouseY看起来像这样,则代码中可能会禁用此选项:

(MouseY >= elem.Y && MouseY <= elem.Y + elem.GetHeight())

(MouseY>=elem.Y&&MouseY我发现X线也在向后移动。如果我处在你的位置,我会试着插上线,看看效果如何。也可能是你没有鼠标侦听器,或者鼠标侦听器运行不正常。如果你需要鼠标侦听器的帮助,请查看youtube上的Java Hub并查看他的乒乓球游戏菜单。他也使用同样的功能概念。

我建议将此问题迁移到gamedev.stackexchange.com,因为我觉得它会得到更好的回答。您尝试了什么?对于UI程序,调试可能很困难,除非您从其他机器上进行调试。您至少尝试过记录变量值吗?我使用的是LWJGL。它应该可以正确地处理鼠标,我现在将尝试记录值谢谢!D在我的情况下,X坐标没有翻转,但Y坐标正在翻转。谢谢你的回答,我刚刚从屏幕高度减去鼠标Y值,结果成功了:)