我正在制作一个矩形:
rect = new Rectangle();
rect.x = 40;
rect.y = 100;
rect.setSize(100,100);
然后还在矩形的位置上绘制一些纹理,如:
batch.draw(myTexture, rect.x , rect.y, rect.width, rect.height);
现在我想要做的还是看到矩形的形状,我必须看到一些边界,这样我才能看到我的矩形边界以及我的纹理。我需要这个用于调试目的,因为纹理是复杂的,像背景是透明的,所以我想从这些地方删除碰撞,这就是为什么我在想,如果我能看到矩形和精灵,它会很棒。
虽然我试过这样做:
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setColor(Color.RED);
shapeRenderer.rect(0,0,100,100);
shapeRenderer.end();
我认为上面的代码可以帮助我绘制纹理以及看到矩形,但事实证明我只能看到矩形的边界而不是纹理。
这是输出:
在图像中,你可以看到一个红色矩形,这是我试图调试我的酒吧(黄色条也应该在这里显示),但我的黄色不会出现在这个红色边界矩形重叠我的酒吧。
要清楚,我想在纹理正上方看到shapeRenderer并能够看到它们两者
答案 0 :(得分:2)
所以我找到了答案,
如你所知,我希望在我的纹理上出现一个矩形,这样我就可以看到 - 我的纹理和我的shapeRenderer形状,但我只能看到我的形状,而不是纹理。
问题是我正在做的是我开始批处理,在里面我编写了用于绘制批处理的代码以及将shapeRenderer绘制到批处理的代码,如下所示:
batch.begin();
batch.draw(texture,0,0,0,0);
shapeRenderer.begin();
shapeRenderer.rect(0,0,0,0);
shapeRenderer.end();
batch.end();
上面的代码替换了我的纹理,因为它只能在坐标0,0处绘制一个东西,所以首先它将纹理绘制在0,0,然后将shaperenderer绘制为0,0。
解决方案是:
要单独绘制shapeRenderer而不是batch.begin()
和batch.end()
之内:
batch.begin();
batch.draw(texture,0,0,0,0);
batch.end();
shapeRenderer.begin();
shapeRenderer.rect(0,0,0,0);
shapeRenderer.end();