Java Greenfoot Zufallszahlen neu generieren

Bissi was musste doch auch selbst machen...

Überleg doch mal, an welcher Stelle du die Reihie setzt und wie du eine Zufallszahl zwischen 0 und 3 bekommst...
 
Also mit der Zufallszahl ist ja kein Problem, aber die 2. bzw. 3. Reihe muss ja dann starten, wenn die vorherige Reihe an einer bestimmten Stelle ist.
Genau das ist mein Problem.
 
Wieso, du musst doch einfach nur wie am Anfang die Gegner per Zufall zwischen 0 und 885 verteilen. Dazu dann nurnoch die Reihe variieren, dann bekommst du eine recht gute verteilung
 
Was meinst du denn mit Reihen variiren? Die müssen doch auch hintereinander liegen.
 
Na das was ich oben gesagt hab. Einfach für die Reihe eine weitere Zufallszahl nehmen udn da dann den gegner reinpacken
 
Aber so liegen die doch nicht hintereinander.
 
Ähm doch? Wenn du mal einen in die erste Reihe, mal in die zweite usw setzt, sind die doch hintereinander..

Also X immer zwischen 0 und 3 variieren und Y zwischen 0 und 885
 
Dann muss die Reihe 1 also etwa x = 875 , Reihe 2 x = 880 und Reihe 3 = 885 starten?
 
grrrr nein.....

int zufallsgegnerX = Greenfoot.getRandomNumber(3);
int zufallsgegnerY = Greenfoot.getRandomNumber(885);
welt.addObject(gegner1,zufallsgegnerX ,zufallsgegnerY);
 
Also in verschiedenen Reihen starten die dann trotzdem nicht.
Starten immer noch in einer Reihe.
 
Also bei mir steht jetzt:

if (Greenfoot.isKeyDown("b")) {
if (level1 < 1) {
for (int i = 25;i > 0;i--) {
Gegner1 gegner1 = new Gegner1();
World welt = this.getWorld();
int zufallgegnerx = Greenfoot.getRandomNumber(3)+882;
int zufallgegnery = Greenfoot.getRandomNumber(885);
welt.addObject(gegner1,zufallgegnerx,zufallgegnery);
gegner1.setRotation(180);
level1 = 1;
}
}
 
Stimmt die sollen aber auch von rechts kommen.
 
Die sollen ja eigentlich hintereinander kommen. Liegt das vielleicht daran, dass nur ein Pixel Unterschied ist?
 
Hintereinander? Was meinst du damit? Ich dachte, du willst einfach auf eine Fläche von 3x885 Feldern deine 50 Einheiten verteilen und gut ist^^
 
Also das ist ein Mini-Weötraum-Shooter. Auf der einen Seite bin ich (etwa 25/442), auf der anderen Seite (885/ 0 - 885) sollen die Gegner kommen. Deshalb sollen die in mehreren Reihen oder Wellen kommen. Die Objekte muss ich "abschießen" oder ausweichen.
Deshalb sollen die auch so verteilt laufen.
 
Naja, dann musst du dass irgendwie so machen:

Code:
World welt = this.getWorld();
int abstandWellen = 10;
int anzahlWellen = 3;
for(int i = 0; i < anzahlWellen; i++){
   for (int j = 0; j < 25 ;j++) {
       Gegner1 gegner1 = new Gegner1();
       gegner1.setRotation(180);
       int zufallgegnerx = Greenfoot.getRandomNumber(3)+800+(abstandWellen*i);
       int zufallgegnery = Greenfoot.getRandomNumber(885);
       welt.addObject(gegner1,zufallgegnerx,zufallgegnery);    
  }


}
 
Zurück
Oben