我想知道如何制作一种方法来产生多个不同的精灵或矩形。它是否正在使用数组?现在,下面的代码产生了每秒在随机位置产生的相同矩形(精灵)。所以我希望它选择自己随机不同的矩形(精灵)?
public class Chibi implements ApplicationListener {
Texture fallL;
OrthographicCamera camera;
SpriteBatch batch;
Array<Rectangle> chibis1;
long lastDropTime;
@Override
public void create() {
//Load image
fallL = new Texture(Gdx.files.internal("fallL.png"));
camera = new OrthographicCamera();
camera.setToOrtho(false,800,400);
batch = new SpriteBatch();
chibis1 = new Array<Rectangle>();
spawnChibi();
}
private void spawnChibi() {
Rectangle chibi1 = new Rectangle();
chibi1.x = MathUtils.random(0, 800-64);
chibi1.y = 480;
chibi1.width = 64;
chibi1.height = 64;
chibis1.add(chibi1);
lastDropTime = TimeUtils.nanoTime();
}
@Override
public void dispose() {
fallL.dispose();
bgMusic.dispose();
points.dispose();
lvup.dispose();
batch.dispose();
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
for(Rectangle chibi1 : chibis1){
batch.draw(fallL, chibi1.x, chibi1.y);
}
batch.end();
if (TimeUtils.nanoTime() - lastDropTime >1000000000) spawnChibi();
//process user input
Iterator<Rectangle> iter = chibis1.iterator();
while(iter.hasNext()){
Rectangle chibi1 = iter.next();
chibi1.y -= 200*Gdx.graphics.getDeltaTime();
if(chibi1.y + 64 < -60) iter.remove();
}
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
还要记住,我是这个java游戏制作和java的新手。 :)
答案 0 :(得分:0)
有多种方法可以解决这个问题。
你采取哪种方法完全取决于我们没有的背景。