java - 在 LibGDX 中将形状绘制为纹理

标签 java android opengl libgdx

我正在游戏中创建菜单,特别是带有圆角和边框的矩形。我可以使用形状渲染器来做到这一点,但我不能混合形状渲染器和 Sprite 批处理器。目前,我的分辨率似乎是使用 PNG 等大形状并对其进行缩放,但在很多设备上这会产生模糊的角落。

我已经阅读了有关网格、着色器、在 Sprite 批处理后使用形状渲染器(复杂层和性能影响)、9 补丁(边框变得模糊,无法正确执行渐变)的教程

在 Android 中,这相当简单,我们只需在 XML 中定义形状,它就会创建一个漂亮的清晰形状示例:带有边框和渐变的圆角矩形。

任何人都可以给我一些建议,以及我将如何创建一个带有渐变的圆角矩形,最好是一些易于使用的实现,可以在可重用的类中使用。

最佳答案

您可以将形状绘制为 PixMaps ,然后从中创建TextureRegions以使用SpriteBatch进行渲染。

该工具集有点基本,但您可以从另一个 PixMap 绘制点、线、三角形、圆形、矩形、填充或绘制区域。

您可以通过绘制两个重叠的矩形并在每个角绘制一个圆来绘制圆角矩形。

PixMap myPixMap = new PixMap(desiredWidth, desiredHeight, pixmapFormat);
myPixMap.setColor(myColor);
myPixMap.fillRectangle(x, y, width, height);

TextureRegion myTextureRegion = new TextureRegion(new Texture(myPixMap));

关于java - 在 LibGDX 中将形状绘制为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24922539/

相关文章:

c++ - GLSL 着色器纹理 alpha splatting

java - java中的HTTP GET请求

android - 在 "select an action"菜单中添加 Android App

java - IO 与数据库 : Which is faster?

android - 带按钮的透明 LinearLayout (Android)

Android 深度链接,无法使用方案 'android-app' 过滤 Intent

opengl - 现代 OpenGL 的正交投影问题

c++ - 并行运行 CUDA 和 OpenGL,无需使用互操作性

java - BeanValidation 的上下文相关验证

java - Android 应用程序可以通过代码承担动态着色图像资源的责任吗?