Hi, ich habe in einem Programme das ich mit Java ME geschrieben habe follgende Klasse.
Von dieser Klasse habe ich mehrere Objekte in Form eines Arrays erzeugt. Eigendlich sollte jetzt bei jedem Aufruf der Methode "respawn()" der x-Wert des jeweiligen Objekts auf einen zufälligen Wert zwischen 0 und width gesetzt werden. Das Problem ist, dass aber bei allen Objekten der x-Wert auf die selbe Zahl gesetzt wird. An was liegt das?
Hier noch das Codestück in dem die "respawn()" Methode aufgerufen wird.
Java:
package hello;
import java.util.Random;
import javax.microedition.lcdui.Graphics;
public class Enemie {
int x, y;
public Enemie(int width) {
respawn(width);
}
public void respawn(int width) {
Random r = new Random();
int izufallszahl = r.nextInt(width);
x = izufallszahl-MainCanvas.imageEnemie.getWidth()/2;
y = -MainCanvas.imageEnemie.getHeight();
}
public void draw(Graphics g) {
g.drawImage(MainCanvas.imageEnemie, x, y, Graphics.LEFT | Graphics.TOP);
}
}
Von dieser Klasse habe ich mehrere Objekte in Form eines Arrays erzeugt. Eigendlich sollte jetzt bei jedem Aufruf der Methode "respawn()" der x-Wert des jeweiligen Objekts auf einen zufälligen Wert zwischen 0 und width gesetzt werden. Das Problem ist, dass aber bei allen Objekten der x-Wert auf die selbe Zahl gesetzt wird. An was liegt das?
Hier noch das Codestück in dem die "respawn()" Methode aufgerufen wird.
Java:
for(byte b=0;b<enemieAnzahl;b++) {
enemie[b].y += enemieSpeed;
if(enemie[b].y>getHeight()) {
enemie[b].respawn(getWidth());
}
enemie[b].draw(g);
}