Bonjour à tous,
Suite à mon précédent topic, j'aimerais ajouter d'autres étapes sur l'évolution de mes aliens.
Je recherche l'alien le plus proche du sol dans mon canvas en fonction de sa position.
Il s'agit du leader, une fois repéré, je vx qu'il change de couleur pour se différencier des autres.
Je vx qu'il soit rattraper par un autre alien et perde sa place de leader ou soit qu'il disparaît en bas de l’écran. J'utilise un tableau aliens[] qui contient la liste de mes aliens, une fonction pour afficher
mes aliens ds mon canvas: affiche_aliens() et une fonction alien_le_plus_bas() pour afficher l'alien le plus bas du sol et l'afficher d'une couleur dfférente.
Mais, je n'arrive pas à identifier mon alien le plus bas et lui donner une couleur différente des autres.
Merci par avance!
[/i][/i][/i][/i]
Modifié par dinolam (24 Dec 2014 - 13:19)
Suite à mon précédent topic, j'aimerais ajouter d'autres étapes sur l'évolution de mes aliens.
Je recherche l'alien le plus proche du sol dans mon canvas en fonction de sa position.
Il s'agit du leader, une fois repéré, je vx qu'il change de couleur pour se différencier des autres.
Je vx qu'il soit rattraper par un autre alien et perde sa place de leader ou soit qu'il disparaît en bas de l’écran. J'utilise un tableau aliens[] qui contient la liste de mes aliens, une fonction pour afficher
mes aliens ds mon canvas: affiche_aliens() et une fonction alien_le_plus_bas() pour afficher l'alien le plus bas du sol et l'afficher d'une couleur dfférente.
var aliens = [
{ x:28, y:28, bras_en_bas:true, taille:[], position:[], couleur:[] },
{ x:127, y:127, bras_en_bas:true, taille:[], position:[], couleur:[] },
...
];
// affiche tous les aliens connus, le contenu du tableau aliens[]
function affiche_aliens () {
for ( var i = 0; i < aliens.length; ++i ) {
affiche_alien(aliens[i]);
}
var alien = alien_le_plus_bas();
if (alien.y === ymax) {
alien.y = document.getElementById('canvas').style = 'blue';
}
}
// affiche un seul alien, celui passé en argument de la fonction 'affiche_alien'
function affiche_alien ( alien ) {
if (alien == null || typeof alien != "object") {
alert("affiche_alien : alien n'est pas un objet");
return;
}
if (alien.bras_en_bas) {
context.fillRect(alien.x, alien.y + 4*unit, unit, 3*unit); // Premier bras
...
alien.bras_en_bas = false;
} else {
...
alien.bras_en_bas = true;
}
...
}
// retourne l'alien le plus bas
function alien_le_plus_bas () {
var alien = aliens[0];
var ymax = alien.y;
for (var i = 1; i < aliens.length ; i++) {
if (aliens[i].y > ymax) {
ymax = aliens[i].y;
alien = aliens[i];
}
}
return alien;
}
Mais, je n'arrive pas à identifier mon alien le plus bas et lui donner une couleur différente des autres.
Merci par avance!
[/i][/i][/i][/i]
Modifié par dinolam (24 Dec 2014 - 13:19)