加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么libgdx SpriteBatch / BitmapFont会破坏Texture.b

发布时间:2020-12-15 08:43:24 所属栏目:Java 来源:网络整理
导读:我正在使用libgdx为 Android编写游戏.这是一些绘制纹理环面的代码: Gdx.gl10.glPushMatrix();Gdx.gl10.glTranslatef(center.x,center.y,0);Gdx.gl10.glRotatef(0,1,angle * 360f / (2f * (float)Math.PI));texture.bind();mesh.render(GL10.GL_TRIANGLE_STR
我正在使用libgdx为 Android编写游戏.这是一些绘制纹理环面的代码:

Gdx.gl10.glPushMatrix();
Gdx.gl10.glTranslatef(center.x,center.y,0);
Gdx.gl10.glRotatef(0,1,angle * 360f / (2f * (float)Math.PI));
texture.bind();
mesh.render(GL10.GL_TRIANGLE_STRIP);
Gdx.gl10.glPopMatrix();

…这里有一些代码可以绘制一些文字:

spriteBatch.begin();
spriteBatch.setColor(1,1);
float fps = 1f / Gdx.graphics.getDeltaTime();
font.draw(spriteBatch,"fps: " + fps,50);
spriteBatch.end();

第一位代码一帧一帧地工作,直到第二位代码运行.之后,第一位的三角形条带仅使用最新的glMaterial渲染.知道为什么会这样吗?

更新:解决了!事实证明SpriteBatch.end()调用glDisable(GL_TEXTURE_2D).只是阅读源…

解决方法

它实际上也是在Javadocs中也是如此.经验法则:连接到OpenGL ES的所有libgdx类都将更改最小状态量,并且很可能不会重置事物,因为查询状态的GL代价很高.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读