11544 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je reviens sur ce forum pour trouvez une solution à mon problème suite à mes précédents topics sur la création du jeu Space Invalers que je suis entrain de réaliser et que grâce à l'aide de certains d'entre vous je suis arrivé à ce stade.

J'aimerais à cette étape accélérer la vitesse de mes aliens. Au moment qu'ils accélèrent, j'aimerais qu'ils rapetissent progressivement. Mon souci est que j'ai une vitesse aléatoire qui varie en fonction des valeur de l'interval [1,5]. J'ai supposé qu'à partir de la valeur 3, la vitesse accélère. Mais je trouve pas d'erreur dans mon code et il ne marche pas. J'aurais besoin d'une astuce pour corriger ce souci. Merci par avance!


// Tableau d'aliens
var aliens = [
  { x:28,  y:28,  bras_en_bas:true, vitesse:vitesse_aleatoire()},
  { x:127, y:107, bras_en_bas:true, vitesse:vitesse_aleatoire()},
];
 
// Cherche une vitesse aléatoire
function vitesse_aleatoire () {
   // Avoir une valeur dans un interval
   var mini = 1, maxi = 5;
   return Math.floor(Math.random()*(maxi - mini)) + mini;
}

// L'alien que l'on anime
function animate_alien (alien, leader) {
    var cache_jeu = false;
    efface_alien(alien);
    alien.y += alien.vitesse*unit;
  
    if (alien.y >= hauteur) {
        alien.y = 0;
    }
  
    if (alien.vitesse > 3) {
        plus_petit();
    }
  
    if (cache_alien) {
        alien.y = 0;
        cache_jeu = true;
        alien.vitesse = vitesse_aleatoire();
    } 
    affiche_alien(alien, leader);
    return cache_jeu;
}
  
// Rendre alien plus petit
function plus_petit () {
    var i, alien;
    for (i = 1; i < aliens.length; i++) {
    alien = aliens[i];
    if ((alien.x + 11*unit) > 0.5 && (alien.y + 8*unit) > 0.5) {
        alien.x = alien.x - 0.1;
            alien.y = alien.y - 0.1;
    }
    }
    efface_alien();
}
[/i]