在openGl中绘制line_loop并不是绘制框的一个角

时间:2014-11-25 01:47:47

标签: java opengl lwjgl

当我使用此代码时。

private void drawSelected() {
    int width_border = 5; // border on left and right
    int height_border = 5; // border on top and bottom

    for (Entity e : selected) {
        glPushMatrix();
        glPushAttrib(GL_CURRENT_BIT);
        glColor3f(1.0f, 1.0f, 1.0f);
        glTranslatef(e.getX()+cameraX, e.getY()+cameraY, 0);

        glBegin(GL_LINE_LOOP);
        {
            float x1 = -width_border + 1;
            float y1 = -height_border;
            float x2 = e.getSprite().getWidth() + width_border;
            float y2 = e.getSprite().getHeight() + height_border-1;
            glVertex2f(x1, y1);
            glVertex2f(x1, y2);
            glVertex2f(x2, y2);
            glVertex2f(x2, y1);
        }

        glEnd();
        glPopMatrix();
        glPopAttrib();

    }
}

我得到一个这样的盒子。

http://imgur.com/bMtjmsc

这是openGL,其中0,0是地图的左上角。

我不知道为什么这段代码遗漏了盒子的左下角。有什么我可以做的改变,以便它不会遗漏那个角落吗?

0 个答案:

没有答案