Bon, alors je fais un jeu dans lequel il pleut des chiens. J'ai créé les chiens avec une rangée et les ai ajoutés à ma classe principale avec un nouveau fil et tous mais les chiens ne bougent pas et je ne peux pas comprendre pourquoi. Quelqu'un peut-il m'aider à repérer mon erreur? (NOTE: Ce n'est pas devoirs, que je fais avec mon temps libre)Java - Array d'objets ne bougera pas
est ici un peu de mon code: Classe principale:
// instance variables
private double width, height;
Dogs[] doggo = new Dogs[4]; // an array of dogs
int count = 3; // counts the amount of lives remaining
int counter = 0; // counts how many dogs are saved
public void drawGraphics(){
// draw the dogs
for (int i = 0; i < 5; i++) {
double x = rand.nextDouble(SIZE, (getWidth()-10)-SIZE);
doggo[i] = new Dogs(SIZE, speed, this);
// add dog to top of the window
add(doggo[i], x, 0);
new Thread(doggo[i]).start(); // animate the dogs
//System.out.println("try");
}
for (int i = 0; i < 5; i++) {
double x = rand.nextDouble(10, (getWidth()-10)-SIZE);
doggo[i] = new Dogs(SIZE, speed*2, this);
// add dog to top of the window
add(doggo[i], x, 0);
new Thread(doggo[i]).start(); // animate the dogs
//System.out.println("try");
}
}
classe Chiens:
// constants
private static final double DELAY = 50;
// instance variables
private double size, speed;
DoggoRescue game; // to recognize use of dogs in DoggoRescue game
GImage dog;
public Dogs(double size, double speed, DoggoRescue game){
// save the parameters to the instance variables
this.game = game;
this.size = size;
this.speed = speed;
// draw an image of the dog
dog = new GImage("Doggo.png");
dog.setSize(size, size);
add(dog, -size/2, -size/2);
}
// animate the dog
public void run(){
oneTimeStep();
pause(DELAY);
}
// called by run(), move the dog
private void oneTimeStep(){
// move dog
move(0, speed);
//System.out.println("try");
pause(DELAY);
// call checkCollision of the main class
game.checkCollision(this);
}
a juste pris un rapide coup d'oeil, pas d'analyse réelle ... mais '-size/2' semble que cela pourrait être un problème . Voulez-vous dire '--size/2' ou' (-1 * size)/2'? Et lol @ 'doggo' –
Je pense que le problème est que vous exécutez le code de l'interface utilisateur sur un thread non UI, n'êtes-vous pas? – Sweeper
Ce n'est pas le problème que vous recherchez, mais je ne comprends pas comment vous n'avez pas obtenu une exception IndexOutOfBoundsException pour accéder à 'doggo [4]' quand 'doggo' n'a que 4 éléments. –