java – 试图在LibGDX中绘制一个圆圈
发布时间:2020-12-15 04:26:07 所属栏目:Java 来源:网络整理
导读:这是非常基本的,但我无法弄清楚出了什么问题.基本上我是想在我的一个物体的某个区域周围绘制一个圆圈.我在构造函数中初始化了一个ShapeRenderer(名为srDebugCircle),并在render()方法中使用for循环来绘制每个对象. for (GameObject object : levels.get(LEVE
这是非常基本的,但我无法弄清楚出了什么问题.基本上我是想在我的一个物体的某个区域周围绘制一个圆圈.我在构造函数中初始化了一个ShapeRenderer(名为srDebugCircle),并在render()方法中使用for循环来绘制每个对象.
for (GameObject object : levels.get(LEVEL_INDEX)) { if (object.getType() == ObjectType.SWINGING_SPIKES) { object.draw(batch); srDebugCircle.begin(ShapeType.Filled); srDebugCircle.circle(object.getxPos() + object.getWidth()/2,object.getyPos(),object.getWidth()/2); srDebugCircle.setColor(Color.BLACK); srDebugCircle.end(); } if (object.getType() == ObjectType.COIN && (Coin) object).isVisible()) { object.draw(); } ... } 问题是当我添加圆圈的代码时,我只看到15个对象中的4个.当我删除/评论它时,它照常工作 – 但是,在这两种情况下,我永远不会看到一个黑色的圆圈. 我特别谈到这部分: srDebugCircle.begin(ShapeType.Filled); srDebugCircle.circle(object.getxPos() + object.getWidth()/2,object.getWidth()/2); srDebugCircle.setColor(Color.BLACK); srDebugCircle.end(); 谁能明白为什么我有这个问题? 解决方法
Springrbua答案的另一种选择是使用Pixmaps而不是ShapeRenderer绘制.在SpriteBatch和ShaperRenderer之间切换是一项昂贵的操作,Pixmaps不需要结束SpriteBatch. Pixmap提供的绘制方法比ShapeRenderer少,但它确实包括绘制一个实心圆.
Pixmap pixmap = new Pixmap(width,height,Pixmap.Format.RGBA8888); pixmap.setColor(Color.BLACK); pixmap.fillCircle(x,y,r); Texture texture = new Texture(pixmap); // render batch.begin(); batch.draw(texture,x,y); batch.end(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |