Bonjour Vangog,
Mon objectif est de dessiner à l'aide du Canvas et non pas prendre des images et les animer.
Je n'ai pas de problèmes d'affichage de mes aliens et non plus pour déboguer.
Merci qd même pour le conseil!
Version imprimable
Bonjour Vangog,
Mon objectif est de dessiner à l'aide du Canvas et non pas prendre des images et les animer.
Je n'ai pas de problèmes d'affichage de mes aliens et non plus pour déboguer.
Merci qd même pour le conseil!
Bonjour,
tu as une mauvaise gestion des bornages.Citation:
Quand les aliens touchent le sol, ils disparaissent et réapparaissent en haut.
il te faut interrompre l'affichage en fin de boucle et pas en cours, les éléments non encore dessinés ne le seront donc pas.Citation:
Ce que j'ai envie de faire, c'est une fois le leader touche le sol, tous les aliens s'immobilisent.
Mais tout en restant afficher dans mon canvas.
PS : mais bon je n'ai pas une vision globale de ce que tu as fais...
Bonjour,
Merci de vos réponses, j'ai réussit à trouver une solution.
A bientôt!
et même pas une petite explication qui me semble serait appréciée par ceux qui t'ont aidé et par ceux qui te liront par la suite.Citation:
...j'ai réussit à trouver une solution.
:sleep: 2015 sera peut être l'année du partage !
Re bonjour,
Excusez-moi, j'ai complètement oublié de mettre ce que j'ai fait.
J'avais l'intention de le faire ce juste que je me suis précipité.
Oui c'est vrai comme tu disais NoSmoking, j'avais un petit défaut de conception.
Mais ce n'est pas trop dérangeant, je cherche mon alien leader une fois au début
et je l'envoie à la fonction affiche_alien().
Le code ci-dessous:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 var aliens = [ /*...*/ ]; var animation = null; // Dessine le sol function sol () { context.fillStyle = "red"; context.fillRect(0, 300, 600, 100); } // Pour chaque alien connu function animate_aliens () { var leader = alien_le_plus_bas(); var arret_jeu = false; for ( var i = 0, e = aliens.length; i < e; ++i ) { arret_jeu = animate_alien(aliens[i], leader) || arret_jeu; } if (arret_jeu) { window.clearInterval(animation); } } // L'alien que l'on anime function animate_alien (alien, leader) { var touche_sol = false; ........... alien.y += alien.vitesse*unit; if ((alien.y + 8*unit) >= hauteur - 100) { /* Plus besoin, vu que l'on arrête la boucle alien.y = hauteur - (alien.y + 8*unit) - 100; */ touche_sol = true; } affiche_alien(alien, leader); retour touche_sol; } // Fonction d'initialisation function initialisations () { // [...] animation = setInterval('animate_aliens();', 200); sol(); }