LIBGDX 没有渲染 class 制作的精灵
LIBGDX not rendering a sprite made by a class
好的。让我们直接深入。
我正在使用 LibGdx 创建一个基本的塔防游戏,但我遇到了一些问题。我有我的屏幕 class,我还有一个基本敌人的 class。这是敌人的class:
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);
}
}
}
它看起来不错(对我来说.. 如果您看到错误请告诉我)。另外 class 的名字是 "towerBasic"。那是我要渲染的精灵 class。这是我试图在其上渲染的屏幕 class (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 字段(如果需要)。
简而言之 shell 您的 towerBasic class 应该如下所示:
Texture img;
public towerBasic(){
super(new Texture("towerBasic.png"));
img = this.getTexture();
...
好的。让我们直接深入。 我正在使用 LibGdx 创建一个基本的塔防游戏,但我遇到了一些问题。我有我的屏幕 class,我还有一个基本敌人的 class。这是敌人的class:
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);
}
}
}
它看起来不错(对我来说.. 如果您看到错误请告诉我)。另外 class 的名字是 "towerBasic"。那是我要渲染的精灵 class。这是我试图在其上渲染的屏幕 class (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 字段(如果需要)。
简而言之 shell 您的 towerBasic class 应该如下所示:
Texture img;
public towerBasic(){
super(new Texture("towerBasic.png"));
img = this.getTexture();
...