【发布时间】:2019-05-31 05:58:46
【问题描述】:
我有一个在运行时绘制纹理的方法。
我生成一个随机数,它会改变纹理的高度。
问题是,在运行期间,所有可能的随机数都被创建,并且纹理以各种高度显示。
我生成一个随机数:
Random r = new Random();
int low = 0;
int high = 30;
int result1 = r.nextInt(high-low) + low;
这是我的drawTower() 方法:
private void drawTower() {
batcher.draw(AssetLoader.texture1, tower1.getX(), tower1.getY() + tower1.getHeight() - result1,
tower1.getWidth(), midPointY - (tower1.getHeight()));
}
可以看到有result1,就是随机生成的数字。
现在问题:在我的方法render() 中,我使用drawTower() 方法,这就是创建所有可能的随机数的原因。
我该如何解决这个问题?我想生成一个随机数,在特定的时间间隔后,正在生成一个新的随机数。但我不知道它是如何完成的。
public void render(float runTime) {
Wizard wizard = myWorld.getWizard();
// Fill the entire screen with black, to prevent potential flickering.
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// Begin ShapeRenderer
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
// Draw Background color
shapeRenderer.setColor(55 / 255.0f, 80 / 255.0f, 100 / 255.0f, 1);
shapeRenderer.rect(0, 0, 136, midPointY + 66);
// End ShapeRenderer
shapeRenderer.end();
// Begin SpriteBatch
batcher.begin();
batcher.enableBlending();
batcher.draw(AssetLoader.texture0,
wizard.getX(), wizard.getY(), wizard.getWidth(), wizard.getHeight());
// Draw Tower
drawTower();
// End SpriteBatch
batcher.end();
}
【问题讨论】:
-
您需要随机高度一次(每个应用程序)还是在给定时间段后?
标签: java random libgdx runtime textures