begin process at 2012 05 26 06:54:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > SPACE INVADER V1 ENTIÈREMENT EN ACTION SCRIPT !

SPACE INVADER V1 ENTIÈREMENT EN ACTION SCRIPT !


 Information sur la source

Note :
8,38 / 10 - par 8 personnes
8,38 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :actionscript, space, invader, action, script Niveau :Débutant Date de création :09/05/2007 Vu / téléchargé :9 207 / 1 209

Auteur : Zacland

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ne trouvant rien de probant concernant un jeu simple le tout fait uniquement en action script, je l'ai donc fait avec mes petites mimines. la gestion est simple et détaillée, mais le jeu n'est pas complet. Le vaisseau peut tirer sur les aliens qui se déplacement "à l'ancienne", mais ceux-ci ne ripostent pas encore. Le code est simple, mais l'aventage, c'est que tout est fait en action script. Vous pouvez le modifier comme bon vous semble, et m'envoyer un 'tit mail si vous avez des question ou des propositions ;). Il manque le tir des aliens et les pyramides pour se protéger. Bonheur et joie à tous :P

Source

  • Dans la bibliothèque, il ya a:
  • - Un clip alien formé de la façon suivante:
  • image 1 à 20, l'alien bouge et l'image 20 contient le code: gotoAndPlay(1);
  • image 21 à 30, l'alien se désintègre et l'image 30 contient le code suivant: gotoAndPlay(1);
  • - Un clip dBall qui représente le tir du vaisseau
  • - Un clip defender qui correspond au vaisseau du héro ;)
  • - Des sons associés aux actions de tirs et d'explosions des vaisseaux.
  • Le source qui suit est à mettre dans la première image du calque principal:
  • // Source écrit par -=Zac en Flash version 8.0 (ça marche peut-être en flash MX 2004...)
  • // 09/05/2007
  • // flash@zacland.net pour tout renseignement.
  • depth=0; // Variable pour gestion de profondeur
  • // Affectation des sons.
  • Snd_defenderExplose=new Sound();
  • Snd_defenderExplose.attachSound("explosion.wav");
  • Snd_alienExplose=new Sound();
  • Snd_alienExplose.attachSound("invaderkilled.wav");
  • Snd_inv01=new Sound();
  • Snd_inv01.attachSound("fastinvader1.wav");
  • Snd_inv02=new Sound();
  • Snd_inv02.attachSound("fastinvader4.wav");
  • Snd_defenderShoot=new Sound();
  • Snd_defenderShoot.attachSound("shoot.wav");
  • // On crée une instance du vaisseau du héro :P
  • defender=attachMovie("defender","defender", depth++,{_x:Stage.width/2, _y:Stage.height});
  • defender.vTir=1; // Vitesse du tir
  • defender.tir=false; // Y'a-t-il un tir déjà en cours ?
  • nb_alien=0; // Compteur d'aliens
  • // Boucle d'affichage des aliens
  • for(j=1;j<4;j++){
  • for(i=0;i<5;i++){
  • alien=attachMovie("alien","alien"+nb_alien, depth++,{_x:i*50+50, _y:j*50});
  • alien.vt=2; // Chaque alien a sa propre vitesse de déplacement (même s'ils ont tous la même ^^)
  • alien.h=true; // Les aliens vont vers la droite (false -> ils vont vers la gauche)
  • nb_alien++; // On incrémente le compteur pour le tableau
  • }
  • }
  • nb_alien0=nb_alien; // On sauvegarde le nombre d'aliens qu'on a au total
  • onEnterFrame=function(){
  • defender._x=_xmouse; // Le vaisseau suit le déplacement horizontal de la souris
  • defender._y=380; // L'abssice du vaisseau est toujours la même (le bas de l'écran)
  • txt_alien.text=nb_alien; // On affiche le nombre d'aliens restant
  • 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
  • cur_alien._x=Stage.width-15; // Arrêt progression
  • 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
  • }
  • if(cur_alien._x<15){ // Si on sort à gauche
  • cur_alien._x=15; // Arrêt progression
  • cur_alien.h=!cur_alien.h; // Inversion du sens
  • cur_alien._y+=30; // On descent de 30 px
  • cur_alien.vt+=1; // On augmente la vitesse
  • }
  • 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(cur_alien.hitTest(dBall)){ // Test de collision entre tir et alien (alien courant de la boucle)
  • cur_alien.vt=0; // L'alien s'arrête
  • dBall.removeMovieClip(); // On efface le tir
  • defender.tir=false; // Le joueur peut de nouveau tirer
  • nb_alien--; // Un alien en moins :P
  • Snd_alienExplose.start(); // On joue le son de l'explosion
  • cur_alien.gotoAndPlay(21); // On joue la séquence de l'alien qui explose (une instruction
  • // removeClip se trouve dans la dernière image de la séquence)
  • }
  • }
  • }
  • onMouseDown=function(){ // Lors de l'appui sur le bouton de la souris
  • if(defender.tir==false){ // Si un tir n'est pas déjà en cours
  • // On crée le tir à l'emplacement du vaisseau
  • dBall=attachMovie("dBall","dBall",depth++,{_x:defender._x, _y:defender._y});
  • Snd_defenderShoot.start(); // On joue le son qui va bien
  • defender.tir=true; // On interdi le joueur de pouvoir tirer à nouveau tant que le tir
  • // est toujours existant
  • }
  • }
Dans la bibliothèque, il ya a: 

- Un clip alien formé de la façon suivante:
      image 1 à 20, l'alien bouge et l'image 20 contient le code: gotoAndPlay(1);
      image 21 à 30, l'alien se désintègre et l'image 30 contient le code suivant: gotoAndPlay(1);

- Un clip dBall qui représente le tir du vaisseau 

- Un clip defender qui correspond au vaisseau du héro ;) 

- Des sons associés aux actions de tirs et d'explosions des vaisseaux. 

Le source qui suit est à mettre dans la première image du calque principal: 

// Source écrit par -=Zac en Flash version 8.0 (ça marche peut-être en flash MX 2004...)
// 09/05/2007
// flash@zacland.net pour tout renseignement. 

depth=0; // Variable pour gestion de profondeur 

// Affectation des sons.
Snd_defenderExplose=new Sound();
Snd_defenderExplose.attachSound("explosion.wav");
Snd_alienExplose=new Sound();
Snd_alienExplose.attachSound("invaderkilled.wav");
Snd_inv01=new Sound();
Snd_inv01.attachSound("fastinvader1.wav");
Snd_inv02=new Sound();
Snd_inv02.attachSound("fastinvader4.wav");
Snd_defenderShoot=new Sound();
Snd_defenderShoot.attachSound("shoot.wav"); 

// On crée une instance du vaisseau du héro :P
defender=attachMovie("defender","defender", depth++,{_x:Stage.width/2, _y:Stage.height});
defender.vTir=1;  // Vitesse du tir
defender.tir=false; // Y'a-t-il un tir déjà en cours ? 

nb_alien=0; // Compteur d'aliens 

// Boucle d'affichage des aliens
for(j=1;j<4;j++){
 for(i=0;i<5;i++){
  alien=attachMovie("alien","alien"+nb_alien, depth++,{_x:i*50+50, _y:j*50}); 
  alien.vt=2;  // Chaque alien a sa propre vitesse de déplacement (même s'ils ont tous la même ^^)
  alien.h=true; // Les aliens vont vers la droite (false -> ils vont vers la gauche)
  nb_alien++;  // On incrémente le compteur pour le tableau
 }
} 

nb_alien0=nb_alien; // On sauvegarde le nombre d'aliens qu'on a au total 


onEnterFrame=function(){
 defender._x=_xmouse; // Le vaisseau suit le déplacement horizontal de la souris
 defender._y=380;   // L'abssice du vaisseau est toujours la même (le bas de l'écran)
 
 txt_alien.text=nb_alien; // On affiche le nombre d'aliens restant
 
 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
   cur_alien._x=Stage.width-15;   // Arrêt progression
   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
  } 
  
  if(cur_alien._x<15){       // Si on sort à gauche
   cur_alien._x=15;        // Arrêt progression
   cur_alien.h=!cur_alien.h;    // Inversion du sens
   cur_alien._y+=30;        // On descent de 30 px
   cur_alien.vt+=1;        // On augmente la vitesse
  }
  
  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(cur_alien.hitTest(dBall)){   // Test de collision entre tir et alien (alien courant de la boucle)
   cur_alien.vt=0;         // L'alien s'arrête
   dBall.removeMovieClip();    // On efface le tir
   defender.tir=false;       // Le joueur peut de nouveau tirer
   nb_alien--;           // Un alien en moins :P
   Snd_alienExplose.start();    // On joue le son de l'explosion
   cur_alien.gotoAndPlay(21);   // On joue la séquence de l'alien qui explose (une instruction 
                   // removeClip se trouve dans la dernière image de la séquence)
   }
 }
} 

onMouseDown=function(){        // Lors de l'appui sur le bouton de la souris
 if(defender.tir==false){      // Si un tir n'est pas déjà en cours
  // On crée le tir à l'emplacement du vaisseau
  dBall=attachMovie("dBall","dBall",depth++,{_x:defender._x, _y:defender._y}); 
  Snd_defenderShoot.start();    // On joue le son qui va bien
  defender.tir=true;        // On interdi le joueur de pouvoir tirer à nouveau tant que le tir 
                   // est toujours existant
 }
} 



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture AS3 - JEU DU TAQUIN par pegase31
Source avec Zip CHAMP DE VISION AVEC OBSTACLES - AS3 par t_naulet
Source avec Zip UN JEUX DE VOITURE MULTIJOUEUR OU VOUS CREE VOTRE TERRAIN par hakim255
Source avec Zip JEUX DE TIRE VU DE HAUT par hakim255
Source avec Zip Source avec une capture ERYSOKOBAN V1.02 CS4 AS3 par VBtoTRASH

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip Source avec une capture IMPERIUM - ANIMATIONS MONSTRE par narftech
Source avec Zip HORLOGE par superslouma
Source avec Zip UN PETIT JEU DE VAISSEAU EN FLASH ASSEZ COMPLET par st007
Source avec Zip PETIT SPACE INVADER par Aldarek

Commentaires et avis

Commentaire de dj_ouf le 09/05/2007 11:43:04

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

Commentaire de Zacland le 09/05/2007 11:53:19

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

Commentaire de ralecul le 10/05/2007 13:10:58

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 :-)

Commentaire de Zacland le 10/05/2007 14:08:58

Pris en compte, merki ^^

Commentaire de faiblard le 11/05/2007 10:00:38

Pas mal.

J'ai pas vu d'erreur majeur par contre tu devrais typer tes variables a la déclaration c'est beaucoup mieux...

Commentaire de iceage le 11/05/2007 15:52:10

Super ton truc...

Commentaire de Zacland le 11/05/2007 16:13:09

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 ;)

Commentaire de masternico le 15/05/2007 11:11:32

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   ;)

Commentaire de Zacland le 15/05/2007 14:08:31

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 ;)

Commentaire de masternico le 15/05/2007 16:01:03

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

Commentaire de masternico le 15/05/2007 16:06:22

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é
;)

Commentaire de nova06 le 02/06/2008 15:53:31

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 ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

cherche bon livre d'actionscript [ par flow38 ] Salut, alors voial je voudrait connaitre votre avis sur le ou les meilleurs bouquins sur l'action script, je me suis forme jusqu'ici avec des tuto et Bouton et Action Script [ par jscariot ] Bonjour, J'ai une animation avec un bouton et du code actionscript. Je ne sais pas comment faire pour qu'une URL qui figure dans mon actionscript (AD AU SECOURS !!!! Je débute dans l'actionscript [ par reac ] Bonjour à tous, alors voilà, je tente de me mettre à l'action script avec le bouquin flash MX, mais c super GALÈRE !!!! En fait, j'aimerais savoir où Action script ? [ par MarkASH ] Bonjour,je suis nouveau,j'vais pas vous raconter ma life,mais j'aime travaillé sur flash.Je cherche le code as qui zoom + et qui zoom -Merci. flash action script loadmovie [ par Groovygirl ] Bonjour.je dois faire jouer 2 .swf ( dont je nai pas la source) un &#224; la suite de l'autre.ma s&#233;quence 1: code sur le kframe 1.loadMovieNum("1 action script [ par moha007 ] bonjour les amis !j'ai une animation .swf que j'aimerais mettre au mileu d'une autre animation, il s'agit d'un ecran pc qui affiche aleatoirement des Création dynamique d'appli avec action script et XML [ par yosh ] Bonjour à tous, Je boss actuellement sur un projet assez complexe consistant à créer dynamiquement une appli Flash à partir d'un fichier XML... Je vou ScrollPane couleur (avec flash 8) [ par laetitia_82 ] BonjourVoilà, j'ai retourné toutes les pages sur google pour trouver une réponse à ma question, et evidement je n'ai pas trouvé...Savez vous me dire s Action script Comparaison URGENT [ par eroskod ] Comment passer a lire une frame 2(par exemple), en une date pr&#233;cise: le 1/1/2006(par exemple).? MERCI d'avance&n Faire tourné un objef sur elle-même dans un intervalle de temps précis en action script. [ par jzeel ] Bonjour les amis,Je sais que&nbsp;je peux&nbsp;faire tourn&#233; un objet sur elle-m&#234;me&nbsp;en faisant: &nbsp;'motions tween' et ensuite je pren


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales