Java 如何绘制像素化形状(LIBGDX概念)
我想在一个像素化的风格daw形状。 我当前使用ShaperEnder绘制的cirlce以真实像素渲染 但我喜欢更像素化 我用相机和视口来获得效果,但没有成功 有没有办法说,我的虚拟屏幕是w=800,h=600等等 形状被拉伸。 或极端示例:w=1、h=1和绘图点(1,1)的虚拟屏幕将填充整个屏幕 一切都是可能的:但我想避免用像“Bresenham的直线算法”这样的算法对自己进行编码,或者做一些创建自己的Pixmaps的黑客Java 如何绘制像素化形状(LIBGDX概念),java,libgdx,Java,Libgdx,我想在一个像素化的风格daw形状。 我当前使用ShaperEnder绘制的cirlce以真实像素渲染 但我喜欢更像素化 我用相机和视口来获得效果,但没有成功 有没有办法说,我的虚拟屏幕是w=800,h=600等等 形状被拉伸。 或极端示例:w=1、h=1和绘图点(1,1)的虚拟屏幕将填充整个屏幕 一切都是可能的:但我想避免用像“Bresenham的直线算法”这样的算法对自己进行编码,或者做一些创建自己的Pixmaps的黑客 public class SimpleCirleActor exte
public class SimpleCirleActor extends Actor {
ShapeRenderer renderer;
float radius;
public SimpleCirleActor(int x , int y, float radius) {
setBounds(0,0, Constants.pixelsPerSector(),Constants.pixelsPerSector());
this.radius = radius;
setX(x);setY(y);
renderer = new ShapeRenderer();
}
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
renderer.setProjectionMatrix(getStage().getCamera().combined);
renderer.begin(ShapeRenderer.ShapeType.Line);
renderer.setColor(Color.CYAN);
float x = getX();
renderer.circle(x, getY(), radius);
renderer.end();
}
@Override
public void act(float delta) {
super.act(delta);
}
}
您可以绘制一个小的帧缓冲区,然后将其绘制到屏幕上,根据需要放大。只需确保将帧缓冲区纹理过滤设置为最近的像素,以便保留硬边。