繁体   English   中英

像我们在Cocos2d中一样,如何在Libgdx中将子图像添加到Sprite中?

[英]How to add child image to sprite in Libgdx as we can do in Cocos2d?

当我学习Libgdx时,遇到了这个问题,就像我在Cocos2d中所做的一样,在Libgdx中将子sprite添加到父sprite中。 如何在Libgdx中实现相同的功能,以便我可以对父级Sprite执行操作,随后将其添加到子级Sprite。

编辑:我已经在scene2d的https://github.com/libgdx/libgdx/wiki/Scene2d上看到了,但是他们没有提到如何利用Group。

这是我之前尝试过的,但是即将出现白屏

public class TestScreen implements Screen{
private MainGame game;
private Sprite sprite;
public Group group;
private Stage stage;
private SpriteBatch batch;
public TextureAtlas atlas1;
public Skin skin;
public Image bg;
public Sprite sprite1;

public TestScreen(MainGame game)
{   
    this.game=game;

    group = new Group();
    batch = new SpriteBatch();

    circle=AssestLoader.circle1;
}


@Override
public void render(float delta) 
{
    // TODO Auto-generated method stub

    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    stage.act(delta);

    batch.begin();
    stage.addActor(group);
    batch.end();

}

@Override
public void show() {

    // TODO Auto-generated method stub

    atlas1 = new TextureAtlas("test/gamescreentest.pack");
    skin = new Skin();
    skin.addRegions(atlas1);

    bg = new Image();
    bg.setDrawable(skin, "playbg_hdpi");
    bg.setHeight(460f);
    bg.setWidth(460f);

    group.addActor(bg);

}

@Override
public void hide() {}

@Override
public void resize(int width, int height) {}

@Override
public void pause() {}

@Override
public void resume() {}

@Override
public void dispose() {}}

白色屏幕无图像

您可以使用scene2d和actor( https://github.com/libgdx/libgdx/wiki/Scene2d )。 但这需要您(可能)重写应用程序的某些部分。

如果您的图像是静态的并且没有变化,我建议您使用帧缓冲区在父级上绘制子级。 在性能方面最好。

编辑: http ://www.gamefromscratch.com/post/2013/12/11/LibGDX-Tutorial-3C-Scene-management.aspx上的博客文章有很好的团体示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM