当我使用此代码时。
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();
}
}
我得到一个这样的盒子。
这是openGL,其中0,0是地图的左上角。
我不知道为什么这段代码遗漏了盒子的左下角。有什么我可以做的改变,以便它不会遗漏那个角落吗?