LIBGDX不渲染类所做的精灵

时间:2015-12-17 00:58:02

标签: java class libgdx sprite render

行。让我们直接潜入。 我使用LibGdx创建了一个基本的塔防游戏,但我遇到了一些问题。我有我的Screen课程,我也有一个基本敌人的课程。这是敌人的阶级:

private int segment = 1;


Texture img;
public towerBasic(){
    img = new Texture("towerBasic.png");
    setTexture(img);
    setX(10);
    setY(10);
}

public void update(){
    if(segment == 1){
        System.out.println(getY());
        setY(getY()+1);
    }

}

}

它看起来很好(对我来说......如果你看到错误,请告诉我)。类名也是" towerBasic"。那是我试图渲染的精灵类。这是我尝试渲染它的屏幕类(Map1):

private SpriteBatch batch;

public Texture maptex;
public Sprite map;

public towerBasic tower;

MainGame game;

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

}

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

    maptex = new Texture("map1.png");

    map = new Sprite(maptex);

    tower = new towerBasic();


}

@Override
public void render(float delta) {
    tower.update();
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    map.draw(batch);
    tower.draw(batch);


    batch.end();

}

我运行启动器,正确的屏幕启动并正确渲染背景图像,除了没有绘制敌人......任何见解?

1 个答案:

答案 0 :(得分:2)

你应该创建基础对象并将 Texture 实例传递给它 - 然后如果有必要,你可以将它分配给 Texture 字段。

在坚果壳中, towerBasic 类应如下所示:

Texture img;

public towerBasic(){
    super(new Texture("towerBasic.png"));

    img = this.getTexture();

    ...