我设法用我拥有的图像打包一个纹理图,它可以正常工作,因为它创建了.pack文件和.png文件。问题是当我加载纹理图集并尝试分配AtlasRegions时。它加载整个地图集而不是我想要的图像。这是我用来测试它的模型代码。
@Override
public void create() {
camera = new OrthographicCamera(800, 480);
batch = new SpriteBatch();
test = new TextureAtlas(Gdx.files.internal("polytest.png"));
sprite = test.findRegion("hero");
texture = new Texture(Gdx.files.internal("data/libgdx.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(sprite.getTexture(), 10, 10);
batch.end();
}
这会渲染整个地图集,而不仅仅是图集中名为“英雄”的图像。为什么会这样?
提前致谢。
答案 0 :(得分:8)
当你这样做时.-
batch.draw(sprite.getTexture(), 10, 10);
您实际上是在告诉libgdx
呈现整个Texture
。您需要的是仅绘制TextureRegion
.-
batch.draw(sprite, 10, 10);