重複の可能性:
シードを設定すると、Javaランダムは常に同じ番号を返しますか?
私のゲームでは、ランダムに生成された同じ座標に移動している4つのモンスターがいます。ランダムが機能していないことを意味します。
public void run() {
while (true) {
// paints all Sprites, and graphics
updateScreen(getGraphics());
try {
Thread.sleep(sleep);
} catch (Exception e) {
}
}
}
private void updateScreen(Graphics g) {
loops through all monsters and moves them a bit
for (int gi = 0; gi < bottX.length; gi++) {
bot(gi); // moves a specified monster or gets new coordinates
}
}
private void bot(int c) {
// some stuff to move a monster
// if a monster is in desired place, generate new coordinates
if(isInPlace()){
// g]randomly generates new coordinates X and Y
botX(c);
botY(c);
}
}
public void botX(int c) {
// monsters walking coordinates are between 30 px from the spawn zone.
Random r1 = new Random();
int s = r1.nextInt(3);
// number 0 - left 1 - right 2 - don`t go in X axis
// monster spawn coordinate
int botox = spawnnX[c];
int einamx;
if (s == 0) {
einamx = r1.nextInt(30) + (botox - 30);
// [botox-30; botox)
} else if (s == 1) {
einamx = r1.nextInt(29) + (botox + 1); // (botoX+1 botoX+30]
} else {
einamx = botox;
}
// sets to where the monster should go
einammX[c] = einamx;
return;
}
したがって、このゲームでは、スポーン座標が等しい4つのモンスターがあり、同じように動いているため、1つのモンスターしか見ることができません。ところで、スポーン座標を変えると、同じように動いている4体のモンスターを見ることができます。