繁体   English   中英

LIBGDX不渲染类生成的子画面

[英]LIBGDX not rendering a sprite made by a class

好。 让我们直接潜入。我正在使用LibGdx来创建基本的塔防游戏,但是我有一些问题。 我有屏幕课程,也有基本敌人课程。 这是敌人的职业:

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

}

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

您应该创建一个传递了Texture实例的基础对象-然后在必要时将其分配给Texture字段。

简而言之,您的towerBasic类应如下所示:

Texture img;

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

    img = this.getTexture();

    ...

暂无
暂无

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

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