在开始之前我想声明我正在学习,我是全新的。在这里我添加了尽可能多的细节。
所以,我有一组不同颜色的纹理,并设置一个 Random 来随机化纹理,如下所示:
Texture[] bubbles;
Random random = new Random();
int lowRange = 0;
int highRange = 3;
int result = random.nextInt(highRange -lowRange) + 1; //my random
ArrayList<Integer> BubbleXs = new ArrayList<>();
ArrayList<Integer> BubbleYs = new ArrayList<>();
@Override
public void create () {
bubbles = new Texture[4];
bubbles[0] = new Texture("blue.png");
bubbles[1] = new Texture("red.png");
bubbles[2] = new Texture("green.png");
bubbles[3] = new Texture("yellow.png");
}
然后,我继续使用 for 循环以从屏幕顶部掉落的随机颜色绘制纹理,如下所示:
@Override
public void render () {
if (BubbleCount < 120) {
BubbleCount++;
} else {
BubbleCount = 0;
makeBubble();
}
public void makeBubble () {
float width = random.nextFloat() * Gdx.graphics.getWidth();
BubbleXs.add((int)width);
BubbleYs.add(Gdx.graphics.getHeight());
}
for (int i=0; i < BubbleYs.size(); i++) {
batch.draw(bubbles[result], BubbleXs.get(i), BubbleYs.get(i));
BubbleYs.set(i, BubbleYs.get(i) -4);
}
它完美地随机绘制纹理,但只有一次,当它创建时,我希望它们每次循环时都是一个新的随机,所以每次掉落时都是不同的。为什么它不这样做?我缺少什么?
蝴蝶刀刀
相关分类