我目前正在为我的游戏实施照明系统。 我的灯光类计算了一个多边形,让我的灯光可见。 我现在需要做的就是以这种形状剪掉我的轻盈纹理。
我试图通过创建polygonRegion并将其绘制到polygonSpriteBatch来实现此目的。
这就是我现在所做的事情:
polygonRegion = new PolygonRegion(new TextureRegion(light), vertices,
new EarClippingTriangulator().computeTriangles(vertices).toArray());
并在绘图步骤中:
polygonSpriteBatch.setProjectionMatrix(lightHandler.tiledTest.cameraHandler.camera.combined);
polygonSpriteBatch.begin();
polygonSpriteBatch.draw(polygonRegion, 0, 0);
polygonSpriteBatch.end();
多边形实际上工作正常并且按照预期但目前的问题是,实际的光纹理似乎不会出现在多边形中心的实际光线上,而是在左下角地图。所以我的浅色多边形实际上是黑色的,直到我把它放在那个角落里。
这是一个在地图上放置了一些光源的屏幕。请忽略绿线和黄线。这些用于调试多边形。
https://1drv.ms/i/s!AgucvuUdePpwhZg7rqn6pk7cYktf1A
这就是我希望我的轻多边形实际看起来的样子:
https://1drv.ms/i/s!AgucvuUdePpwhZg6Y8Y2JiKplGm6ig
我希望你能帮我解决这个问题!
对于我在这篇文章中所犯的任何错误道歉......这是我的第一个错误!