libGDX - 围绕图像创建边框

jul*_*ian 7 java textures libgdx

我可以在图像周围制作边框吗?我在2D中有很多块,当玩家用鼠标悬停在其中一个上时,我想显示纹理/图像周围的边框.

多数民众赞成我实际上是如何绘制块的(我认为它不相关,但也许它会有所帮助):

batch.draw(map.map[mapPos].TEXTURE, (mapPosX * Block.WIDTH), (mapPosY * Block.HEIGHT), Block.WIDTH, Block.HEIGHT);
Run Code Online (Sandbox Code Playgroud)

是否可以使用代码或者我应该使用纹理和边框围绕它创建单独的图像?有任何想法吗?

ned*_*edR 4

您可以尝试使用ShapeRenderer首先绘制边框,然后在其上进行批量绘制。这纯粹是用代码完成的,没有使用纹理。下面的代码添加了蓝色边框。

render()您的batch.end().

batch.end(); // Add the following after this line

sr.setProjectionMatrix(camera.combined);
sr.begin(ShapeType.Line);
sr.setColor(new Color(0,0,1,0));
sr.rect((mapPosX * Block.WIDTH), (mapPosY * Block.HEIGHT), Block.WIDTH, Block.HEIGHT));
sr.end();
Run Code Online (Sandbox Code Playgroud)

当然,您需要在您的ScreenApplicationListener实现中初始化 ShapeRenderer。只需在声明和初始化批处理的代码中执行此操作即可。

在你的游戏类中:

SpriteBatch batch; //Put the following below this line
ShapeRenderer sr;
Run Code Online (Sandbox Code Playgroud)

在你的构造函数中:

batch = new SpriteBatch(); //Put the following below this line
sr = new ShapeRenderer();
Run Code Online (Sandbox Code Playgroud)

编辑:我重写了该函数,以便您可以在绘制纹理批次后绘制形状。