2013-05-14 59 views
1

我需要知道如何從紋理地圖集中添加精靈,以便我可以將其作爲主菜單的精靈來實現。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到屏幕上每一次我都試過了崩潰告終方式。

回答

3

你做得不對。你的渲染方法沒有任何繪製。看看libgdx中的SuperJumper演示。

爲了回答關於如何創建一個sprite-

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);