我可以在图像周围做边框吗?我有很多2D块,当播放器将鼠标悬停在其中一个上时,我想在纹理/图像周围显示边框。
那就是我实际绘制块的方式(我认为它不相关,但也许会有所帮助):
batch.draw(map.map[mapPos].TEXTURE, (mapPosX * Block.WIDTH), (mapPosY * Block.HEIGHT), Block.WIDTH, Block.HEIGHT);
代码是否可行,还是我应该制作一个带有纹理和边框的单独图像?有任何想法吗?
您可以尝试使用ShapeRenderer首先绘制边框,然后在其上进行batch.draw。这完全是在代码中完成的,而无需使用纹理。下面的代码添加了一个蓝色边框。
在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();
当然,您需要在Screen
或ApplicationListener
实现中初始化ShapeRenderer 。只需在声明和初始化批处理的代码中执行即可。
在您的游戏课程中:
SpriteBatch batch; //Put the following below this line
ShapeRenderer sr;
在您的构造函数中:
batch = new SpriteBatch(); //Put the following below this line
sr = new ShapeRenderer();
编辑:我重写了功能,以便您可以在绘制纹理批处理后绘制形状。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句