LIBGDX如何从纹理图集中添加精灵

时间:2013-05-14 18:45:53

标签: java libgdx

我需要知道如何从纹理图集中添加一个精灵,这样我就可以将它作为主菜单的精灵来实现。

以下是主菜单的代码:

public class MainMenu implements Screen {

    CrazyZombies game;
    Stage stage;
    TextureAtlas atlas;
    Skin skin;
    SpriteBatch batch;

    TextureRegion firstLayer;
    TextureRegion secondLayer;
    TextureRegion thirdLayer;
    TextureRegion fourthLayer;
    TextureRegion fifthLayer;
    TextureRegion sixthLayer;
    TextureRegion seventhLayer;
    TextureRegion eighthLayer;
    TextureRegion ninthLayer;
    TextureRegion tenthLayer;
    TextureRegion eleventhLayer;

    public MainMenu(CrazyZombies game){
        this.game = game;
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        Gdx.gl.glClearColor(0.09f, 0.28f, 0.2f, 1);

        batch.begin();
        batch.end();
    }

    @Override
    public void resize(int width, int height) {
        Gdx.input.setInputProcessor(stage);


    }

    @Override
    public void show() {
        batch = new SpriteBatch();
        skin = new Skin();
    }

    @Override
    public void hide() {
        dispose();
    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void dispose() {
        batch.dispose();
        skin.dispose();
        atlas.dispose();
        stage.dispose();
    }

    public void loadLayers() {
        TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("data/mainmenu/MainMenu.pack"));
        firstLayer = atlas.findRegion("1layer");
    }
}

所以我需要将firstLayer放到屏幕上,并且我尝试的每一种方式都以崩溃结束。

1 个答案:

答案 0 :(得分:3)

你做得不对。您的渲染方法没有任何绘制。看看libgdx中的SuperJumper演示。

回答如何创建精灵 -

Sprite mySprite;
...
...
mySprite = new Sprite(someTextureRegion);
        mySprite.setSize(SOME_WIDTH, SOME_HEIGHT);
        mySprite.setOrigin(SOME_WIDTH/2f, SOME_HEIGHT/2f);
        mySprite.setPosition(world.sprite.bounds.x, world.sprite.bounds.y);
...
...
mySprite.draw(batch);