dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011
-
9 mai 2007 à 11:43
cs_nova06
Messages postés1Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention 2 juin 2008
-
2 juin 2008 à 15:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_nova06
Messages postés1Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention 2 juin 2008 2 juin 2008 à 15:53
serait-il possible par exemple de se servir de ce jeu pour déterminer qui entre ou qui n'entre pas dans un site.
Je m'explique : plutôt que d'entrer directement dans un site, je propose de jouer. A l'issue du jeu, soit tu l'as fini dans un temps imparti et un bouton "entrer" apparait pour accéder au site, soit tu te plantes ou tu dépasses le temps et un bouton apparait te proposant de rejouer.
C'est faisable ou j'ai fumé trop de moquette ?
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 15 mai 2007 à 16:06
oooops, la boulette, ^^
il faut mettre:
cur_alien._x((is_out 2)?cur_alien._x-15:cur_alien._x+15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x-= 15;
// else cur_alien._x+= 15;
et non pas:
cur_alien._x((is_out 2)?Stage.width-15:15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x= Stage.width-15;
// else cur_alien._x= 15;
désolé
;)
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 15 mai 2007 à 16:01
Pour l'instant, dès qu'un alien dépasse le bord du cadre (gauche ou droite), tu le recule de 15, tu inverse son sens de transition, puis tu le descends et enfin tu l'accelère.
A ta place, je ferais ainsi:
/////////////////////////////////////
is_out = 0; //0 pas de sortie; 1 sortie à gauche; 2 sortie à droite;
for(i=0;i<nb_alien0;i++){
cur_alien=_root["alien"+i]; // Sélection N° Alien
if(cur_alien.h==true){
cur_alien._x+=cur_alien.vt; // Depl vers la droite
} else {
cur_alien._x-=cur_alien.vt; // Depl vers la gauche
}
if(cur_alien._x>Stage.width-15){ // Si sort à droite
is_out = 2; // On previent
}
if(cur_alien._x<15){ // Si on sort à gauche
is_out = 1; // On previent
}
if(defender.tir==true){ // Si un tir est en cours
if(dBall._y>0){ // Si le tir ne sort pas de l'écran (en haut)
dBall._y-=defender.vTir; // Le tir avance d'un cran
} else { // Sinon
dBall.removeMovieClip(); // On enlève le clip du tir
defender.tir=false; // Il n'y a plus de tir en cours (sous entendu,
// le joueur peut tirer à nouveau)
}
}
if(is_out!=0){ // Si est sorti d'un coté ou de l'autre.
for(i=0;i<nb_alien0;i++){
cur_alien=_root["alien"+i]; // Sélection N° Alien
cur_alien._x((is_out 2)?Stage.width-15:15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x= Stage.width-15;
// else cur_alien._x= 15;
cur_alien.h=!cur_alien.h; // Inversion du sens
cur_alien._y+=30; // On descend de 30 px
cur_alien.vt+=1; // On augmente la vitesse
}
}
///////////////////////////////////////////
Du coups, il n'est plus nécessaire d'avoir une vitesse de déplacement pour chaque alien puisque tous vont descendre en même temps, donc tous vont accélerer ensemble.
Il en va de même pour le sens de déplacement. Je n'ai pas modifié ces paramètres, te laissant seul juge de la pertinence de mes commentaires.
Pour finir, il manque aussi deux truc importants avant la riposte des aliens:
- que se passe t-il quand on a dégommé tout les aliens
- que se passe t-il quand les aliens ateignent la dernière ligne
cs_Zacland
Messages postés35Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention15 mai 2007 15 mai 2007 à 14:08
Ha, c'est bien, il y en a un qui a réagit ... :P Oui, en effet, les aliens doivent tous se décaler en même temps, mais le gestion de ce type de déplacement m'a paru "plus" dur à gérer... mais si quelqu'un veut se pencher sur le "problème", je suis preneur :D
P.S.: Les niveaux supérieurs sont en cours, avec les aléats du travail entre temps ;)
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 15 mai 2007 à 11:11
Salut,
C'est plutôt bien réussi comme petit jeu, mais il y à un petit truc qui ne colle pas par rapport aux jeux "d'origine":
Normalement, tout les aliens descendent en même temps et repartent dans le sens oposé en même temps.
Voili voilou...
P.S.: les niveaux suivant sont attendu avec impatience ;)
cs_Zacland
Messages postés35Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention15 mai 2007 11 mai 2007 à 16:13
Oui, alors je ne vous cacherais pas que je rigole un peu moins avec la gestion des tirs des aliens, mais c'est en cours ...
Merci ;)
iceage
Messages postés7Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention11 mai 2007 11 mai 2007 à 15:52
Super ton truc...
faiblard
Messages postés337Date d'inscriptionsamedi 3 février 2007StatutMembreDernière intervention 4 janvier 2011 11 mai 2007 à 10:00
Pas mal.
J'ai pas vu d'erreur majeur par contre tu devrais typer tes variables a la déclaration c'est beaucoup mieux...
cs_Zacland
Messages postés35Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention15 mai 2007 10 mai 2007 à 14:08
Pris en compte, merki ^^
ralecul
Messages postés111Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 1 août 2008 10 mai 2007 à 13:10
Salut,
Vraiment cool le Space Invader ! Ca vaut bien un 9/10 !
Euh sinon j'ai trouvé quelques petites erreurs dans le code :
ligne 81 : # if(defender.tir=true){ // Si un tir est en cours
A remplacer par "if(defender.tir==true){ " ou mieux : "if(defender.tir){"
De même à la ligne 61 : "if(cur_alien.h==true){" -> "if(cur_alien.h){"
Et à la ligne 104 : "if(defender.tir==false){" -> "if(!defender.tir){"
Mouais, remarque je suis pas un pro AS mais bon je pense que ça doit être mieux comme ça :-)
cs_Zacland
Messages postés35Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention15 mai 2007 9 mai 2007 à 11:53
Huhu, pour le style "oldschool", je me suis défoncé ... c'est vrai, c'était la bonne période quand on ne dessinait qu'avec des carrés :P
Pour les optomisations, je suis preneur, il est vrai que j'ai essayé de faire au plus simple pour les débutants et j'espère que cela leur donnera un élan à programmer en AS ;)
Merci DJ_Ouf :P
dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011 9 mai 2007 à 11:43
Salut!
c'est pas mal du tout comme source, j'aime bien le style old school très réussi ! le code est clair aussi mais néanmoins me semble optimisable ^^. bonne source pour les débutants! Donc ma note: 8/10
2 juin 2008 à 15:53
Je m'explique : plutôt que d'entrer directement dans un site, je propose de jouer. A l'issue du jeu, soit tu l'as fini dans un temps imparti et un bouton "entrer" apparait pour accéder au site, soit tu te plantes ou tu dépasses le temps et un bouton apparait te proposant de rejouer.
C'est faisable ou j'ai fumé trop de moquette ?
15 mai 2007 à 16:06
il faut mettre:
cur_alien._x((is_out 2)?cur_alien._x-15:cur_alien._x+15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x-= 15;
// else cur_alien._x+= 15;
et non pas:
cur_alien._x((is_out 2)?Stage.width-15:15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x= Stage.width-15;
// else cur_alien._x= 15;
désolé
;)
15 mai 2007 à 16:01
A ta place, je ferais ainsi:
/////////////////////////////////////
is_out = 0; //0 pas de sortie; 1 sortie à gauche; 2 sortie à droite;
for(i=0;i<nb_alien0;i++){
cur_alien=_root["alien"+i]; // Sélection N° Alien
if(cur_alien.h==true){
cur_alien._x+=cur_alien.vt; // Depl vers la droite
} else {
cur_alien._x-=cur_alien.vt; // Depl vers la gauche
}
if(cur_alien._x>Stage.width-15){ // Si sort à droite
is_out = 2; // On previent
}
if(cur_alien._x<15){ // Si on sort à gauche
is_out = 1; // On previent
}
if(defender.tir==true){ // Si un tir est en cours
if(dBall._y>0){ // Si le tir ne sort pas de l'écran (en haut)
dBall._y-=defender.vTir; // Le tir avance d'un cran
} else { // Sinon
dBall.removeMovieClip(); // On enlève le clip du tir
defender.tir=false; // Il n'y a plus de tir en cours (sous entendu,
// le joueur peut tirer à nouveau)
}
}
if(is_out!=0){ // Si est sorti d'un coté ou de l'autre.
for(i=0;i<nb_alien0;i++){
cur_alien=_root["alien"+i]; // Sélection N° Alien
cur_alien._x((is_out 2)?Stage.width-15:15); // on redécale tout le monde
// si la forme de test du dessu n'est pas compatible avec actionscript utilise la suivante
// if (is_out == 2) cur_alien._x= Stage.width-15;
// else cur_alien._x= 15;
cur_alien.h=!cur_alien.h; // Inversion du sens
cur_alien._y+=30; // On descend de 30 px
cur_alien.vt+=1; // On augmente la vitesse
}
}
///////////////////////////////////////////
Du coups, il n'est plus nécessaire d'avoir une vitesse de déplacement pour chaque alien puisque tous vont descendre en même temps, donc tous vont accélerer ensemble.
Il en va de même pour le sens de déplacement. Je n'ai pas modifié ces paramètres, te laissant seul juge de la pertinence de mes commentaires.
Pour finir, il manque aussi deux truc importants avant la riposte des aliens:
- que se passe t-il quand on a dégommé tout les aliens
- que se passe t-il quand les aliens ateignent la dernière ligne
15 mai 2007 à 14:08
P.S.: Les niveaux supérieurs sont en cours, avec les aléats du travail entre temps ;)
15 mai 2007 à 11:11
C'est plutôt bien réussi comme petit jeu, mais il y à un petit truc qui ne colle pas par rapport aux jeux "d'origine":
Normalement, tout les aliens descendent en même temps et repartent dans le sens oposé en même temps.
Voili voilou...
P.S.: les niveaux suivant sont attendu avec impatience ;)
11 mai 2007 à 16:13
Merci ;)
11 mai 2007 à 15:52
11 mai 2007 à 10:00
J'ai pas vu d'erreur majeur par contre tu devrais typer tes variables a la déclaration c'est beaucoup mieux...
10 mai 2007 à 14:08
10 mai 2007 à 13:10
Vraiment cool le Space Invader ! Ca vaut bien un 9/10 !
Euh sinon j'ai trouvé quelques petites erreurs dans le code :
ligne 81 : # if(defender.tir=true){ // Si un tir est en cours
A remplacer par "if(defender.tir==true){ " ou mieux : "if(defender.tir){"
De même à la ligne 61 : "if(cur_alien.h==true){" -> "if(cur_alien.h){"
Et à la ligne 104 : "if(defender.tir==false){" -> "if(!defender.tir){"
Mouais, remarque je suis pas un pro AS mais bon je pense que ça doit être mieux comme ça :-)
9 mai 2007 à 11:53
Pour les optomisations, je suis preneur, il est vrai que j'ai essayé de faire au plus simple pour les débutants et j'espère que cela leur donnera un élan à programmer en AS ;)
Merci DJ_Ouf :P
9 mai 2007 à 11:43
c'est pas mal du tout comme source, j'aime bien le style old school très réussi ! le code est clair aussi mais néanmoins me semble optimisable ^^. bonne source pour les débutants! Donc ma note: 8/10