gpt4 book ai didi

java - 移动了 lwjgl 渲染中的渲染器

转载 作者:行者123 更新时间:2023-12-01 11:59:47 25 4
gpt4 key购买 nike

我在 lwjgl 中制作了一个简单的应用程序并创建了简单的 gui。现在我有框架和面板。但有一个问题。因为(显示 800x600)当我在面板(x,y,w,h)(0,0,64,64)上创建面板时一切正常,但是当我在其他位置(x,y,点 0,0位于左上角)它渲染移动的面板。 Capture of  rendering空白区域是我的面板,当我在其上拖动鼠标时,它应该改变颜色。它是在 (417,417,64,64) 上创建的,但它是在 (90,90) 上渲染的。我已经渲染了字体以显示其所有位置。我在该图像上绘制的蓝色框是它应该在的位置,看起来就像面板在那里,因为当我将鼠标拖动到那里时,空白区域正在改变颜色,但这个空白区域应该在那里。我的代码看起来像这样:我将所有组件添加到 HashMap,例如面板。

glColor3f(backgroundColor.getRed(), backgroundColor.getGreen(),
backgroundColor.getBlue());
if (hasFocus()) {
glColor3f(1f, 0f, 0f);
}
glPushMatrix();
glRecti(getX(), getY(), getWidth(), getHeight());
glPopMatrix();

和 initGL 方法:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glScalef(1.0f, 1.0f, 1.0f);
glOrtho(0, 800, 600, 0, 1, -1);
glFrustum(-1, 1, -1, 1, 0.0, 40.0);
glViewport(0, 0, Display.getWidth(), Display.getHeight());
glMatrixMode(GL_MODELVIEW);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glShadeModel(GL_SMOOTH);

最佳答案

glRecti 并不以它期望的角点坐标的方式工作

所以你应该这样做:

glRecti(getX(), getY(), getX()+getWidth(), getY()+getHeight());

关于java - 移动了 lwjgl 渲染中的渲染器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com