我正在创建棋盘游戏,我需要为玩家绘制圈子(2-5名玩家)。我可以使用ShapeRenderer绘制它们但是我不能控制圆圈(改变位置,半径等)。所以我需要使用for循环创建2-5 Circle类对象(我想用for循环来做)。我该怎么办?
谢谢!
答案 0 :(得分:1)
您可以创建一个圆类,并使用for循环遍历它们。例如:
public class MyCirlce{
private float radius;
private Vector2 position;
public MyCircle(float xPos, float yPos, float radius){
position = new Vector2(xPos, yPos);
this.radius = radius;
}
public void translate(float xAmount, float yAmount){
position.x += xAmount;
position.y += yAmount;
}
public void changeSizeBy(float changeAmount){
radius += changeAmount;
}
public void render(ShapeRenderer render){
render.circle(position.x, position.y, radius);
}
}
这将允许您动态更改命名圆圈的位置和大小。此外,如果你不介意使用内置的东西,你可以去他们的wiki看到他们有一个Circle类似于此的对象,具有额外的功能,例如' Overlaps'方法
答案 1 :(得分:0)
您可以使用ShapeRenderer绘制圆圈whitout 你可以绘制另一个物体,而不是移动它们,例如我制作一个蛇白色标签 比你可以移动它们
答案 2 :(得分:0)
您的Circle是仅在视图中需要还是在模型中需要(例如,圆圈之间的碰撞检测)。
如果仅查看,请拍摄圆形.png图像。创建Sprite
或Image
对象并使用它,否则您可以使用ShapeRenderer绘制Circle。
您可以使用ShapeRender对象更改位置将此Actor与scene2d
一起使用修改强>
public static Pixmap getPixmapCircle(int radius, Color color, boolean isFilled) {
Pixmap pixmap=new Pixmap(2*radius+1, 2*radius+1, Pixmap.Format.RGBA8888);
pixmap.setColor(color);
if(isFilled)
pixmap.fillCircle(radius, radius, radius);
else
pixmap.drawCircle(radius, radius, radius);
pixmap.drawLine(radius, radius, 2*radius, radius);
Pixmap.setFilter(Pixmap.Filter.NearestNeighbour);
return pixmap;
}
Texture texture=new Texture(getPixmapCircle(10, Color.RED, true));
Image image=new Image(texture);
or
Sprite sprite=new Sprite(texture);