【发布时间】:2015-09-26 20:22:12
【问题描述】:
所以我有了这个用 LibGDX 制作的游戏。我有一个 GroundTop 和 Ground 类,它在屏幕上绘制地面和地面顶部(在 Assets 类中加载图像),并最终应用与玩家的碰撞(这是一个平台游戏)。我要做的是绘制 4 个不同的 Ground 实例和 2 个不同的 GroundTop 实例,以进行测试。但是,每一个都只有一个。看起来每个实例都会覆盖另一个实例,因为唯一显示的实例具有代码中创建的最后一个实例的坐标。为什么会这样,我怎样才能让它显示每个实例?有什么东西可以让每个实例覆盖类中的另一个吗?我完全迷失了这一点。提前致谢,如有任何问题,请提出帮助澄清我的问题并帮助我找到解决方案:)
这是我的代码:
Game.java
package com.mygdx.thetimetraveller;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.Array;
public class Game implements Screen {
public static int frameCount;
Array<Ground> groundList = new Array<Ground>();
Ground[] grounds = new Ground[1000];
GroundTop groundTop;
GroundTop groundTop2;
Game() {
load();
}
@Override
public void load() {
groundList.add(new Ground(50, 50));
groundList.add(new Ground(250, 250));
grounds[0] = new Ground(500, 500);
grounds[1] = new Ground(650, 650);
groundTop = new GroundTop(500, 20);
groundTop2 = new GroundTop(500, 200);
frameCount = 0;
}
@Override
public void display(SpriteBatch batch) {
frameCount ++;
groundList.get(0).Draw(batch);
groundList.get(1).Draw(batch);
grounds[0].Draw(batch);
grounds[1].Draw(batch);
groundTop.Draw(batch);
groundTop2.Draw(batch);
}
}
Ground.java
package com.mygdx.thetimetraveller;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class Ground {
private static double x;
private static double y;
Ground(double x, double y) {
this.x = x;
this.y = y;
}
public void Draw(SpriteBatch batch) {
batch.draw(Assets.simpleBlockTexture01_sprite, (float) x, (float) y);
}
}
GroundTop.java
package com.mygdx.thetimetraveller;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class GroundTop {
private static double x;
private static double y;
GroundTop(double x, double y) {
this.x = x;
this.y = y;
}
public void Draw(SpriteBatch batch) {
batch.draw(Assets.simpleBlockTextureTop01_sprite, (float) x, (float) y);
}
}
【问题讨论】:
-
thetimetraveller,现在我对这款游戏很好奇。 :)
-
哈哈,那好吧。所以,长话短说,玩家找到了一台时间机器,使用它,不小心洒了一些饮料在上面。然后他/她必须经过许多时区才能回家。我计划这样做,以便用户可以选择在特定时间及时去哪里。很高兴看到你感兴趣:D
-
酷!祝你好运,我迫不及待想玩!
标签: java android libgdx instances