我需要知道如何从纹理图集中添加一个精灵,这样我就可以将它作为主菜单的精灵来实现。
以下是主菜单的代码:
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放到屏幕上,并且我尝试的每一种方式都以崩溃结束。
答案 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);