【问题标题】:LIBGDX not rendering a sprite made by a classLIBGDX 不渲染由类制作的精灵
【发布时间】:2016-03-23 08:25:46
【问题描述】:

好的。让我们直接潜入。 我正在使用 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();

}

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

【问题讨论】:

  • 你的 towerBasic 类继承自哪个类?

标签: java class libgdx sprite render


【解决方案1】:

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

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

Texture img;

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

    img = this.getTexture();

    ...

【讨论】:

  • 好的,现在试试。
  • 是的,非常感谢!它奏效了。只要我有 15 个代表我就赞成:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2016-06-27
  • 2015-10-18
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多