begin process at 2010 02 10 08:59:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > METEORS-KILLER

METEORS-KILLER


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :Concours Flash, arcade, vaisseau, monsieur ad, blogBD Niveau :Débutant Date de création :30/08/2008 Date de mise à jour :31/08/2008 23:45:11 Vu / téléchargé :1 873 / 174

Auteur : aduermael

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

 Description

Jeu dans lequel vous incarner le personnage principal de mon blog BD (http://blog.monsieurad.com)
Le but est de détruire des gros cailloux dans l'espace en tirant des missiles.
C'est donc orienté arcade...
(incroyable, vous pouvez carrément choisir la couleur du vaisseau !!! :D )
Voilà, sinon les dessins sont de moi, à la tablette graphique.
Bon jeu !

Source

  • // frame d'animation
  • stop();
  • addChild(affichScore);
  • affichScore.text = "Score : 0";
  • affichScore.setTextFormat(format);
  • Mouse.hide();
  • stage.addEventListener(Event.ENTER_FRAME, mouv);
  • stage.addEventListener(KeyboardEvent.KEY_DOWN, tirer);
  • j = 0;
  • k = 0;
  • l = 0;
  • niveau = 0;
  • score = 0;
  • //position missile
  • m1.y = -100;
  • m1.x = 600;
  • //position fumee
  • for (i=0; i<nbFumees; i++)
  • {
  • fumees[i] .x = -100;
  • fumees[i] .y = -100;
  • }
  • for (i=0; i<nbMeteors; i++)
  • {
  • meteors[i].gotoAndPlay(1);
  • meteors[i] .x = -100;
  • meteors[i] .y = -100;
  • }
  • // position vaisseau
  • vaisseau.x = 194.4;
  • vaisseau.y = 169;
  • addChild(readyF);
  • function tirer(evt:KeyboardEvent){
  • if (evt.keyCode == 32)
  • {
  • if (m1.dispo)
  • {
  • m1.v = 2;
  • m1.x = vaisseau.x;
  • m1.y = vaisseau.y + 30;
  • // boom.play();
  • canal = mSound.play();
  • m1.dispo = false;
  • removeChild(readyF);
  • }
  • }
  • }
  • function mouv(evt:Event)
  • {
  • nuage1.x -= nuage1.v;
  • nuage2.x -= nuage2.v;
  • nuage3.x -= nuage3.v;
  • nuage4.x -= nuage4.v;
  • if (nuage1.x < -nuage1.width)
  • {
  • nuage1.x = 600 + nuage1.width;
  • nuage1.y = Math.random()*440;
  • }
  • if (nuage2.x < -nuage2.width)
  • {
  • nuage2.x = 600 + nuage2.width;
  • nuage2.y = Math.random()*440;
  • }
  • if (nuage3.x < -nuage3.width)
  • {
  • nuage3.x = 600 + nuage3.width;
  • nuage3.y = Math.random()*440;
  • }
  • if (nuage4.x < -nuage4.width)
  • {
  • nuage4.x = 600 + nuage4.width;
  • nuage4.y = Math.random()*440;
  • }
  • vaisseau.dx = mouseX - vaisseau.x;
  • vaisseau.dy = mouseY - vaisseau.y;
  • vaisseau.x += vaisseau.dx*0.1;
  • vaisseau.y += 0.2*vaisseau.dy;
  • if (vaisseau.dx > 50)
  • {
  • vaisseau.feu1.width = vaisseau.dx*0.7;
  • }
  • else
  • {
  • vaisseau.feu1.width = 0.1;
  • }
  • fumees[j].x = m1.x - 10;
  • fumees[j].y = m1.y;
  • j++;
  • if (j >= nbFumees)
  • {j=0;}
  • // deplacement etoiles
  • for (k=0; k<nbEtoiles; k++)
  • {
  • etoiles[k].x -= etoiles[k].v;
  • if (etoiles[k].x < -20)
  • {
  • etoiles[k].x = 600;
  • etoiles[k].y = Math.random()*400;
  • }
  • }
  • // deplacement meteor
  • for (l=0; l<nbMeteors; l++)
  • {
  • meteors[l].x -= meteors[l].v;
  • if (meteors[l].amplitude != 0){
  • if (meteors[l].amplitudeP != meteors[l].amplitude)
  • {
  • meteors[l].y += 2*meteors[l].amplitude/Math.abs(meteors[l].amplitude);
  • meteors[l].amplitudeP += meteors[l].amplitude/Math.abs(meteors[l].amplitude);
  • }
  • else
  • {
  • meteors[l].amplitude = -meteors[l].amplitude;
  • meteors[l].y += 2*meteors[l].amplitude/Math.abs(meteors[l].amplitude);
  • meteors[l].amplitudeP += meteors[l].amplitude/Math.abs(meteors[l].amplitude);
  • }
  • }
  • if (meteors[l].x < -meteors[l].width-20 && meteors[l].hostile)
  • {
  • meteors[l].gotoAndPlay(19);
  • }
  • // destruction meteor
  • if ((meteors[l].hitTestPoint(m1.x + 30, m1.y, true)
  • || meteors[l].hitTestPoint(m1.x + 20, m1.y-8, true)
  • || meteors[l].hitTestPoint(m1.x + 20, m1.y+8, true))
  • && meteors[l].hostile)
  • {
  • canal.stop();
  • boom.play();
  • score+=meteors[l].score;
  • vaisseau.indicScore.stop();
  • vaisseau.indicScore.gotoAndPlay((meteors[l].i-1)*10-9);
  • affichScore.text = "Score : " + String(score);
  • affichScore.setTextFormat(format);
  • meteors[l].gotoAndPlay(5);
  • meteors[l].hostile = false;
  • m1.x = 1000;
  • m1.dispo = true;
  • addChild(readyF);
  • if (meteors[l].nextToUp == 0)
  • {
  • meteors[l].v+= 1;
  • meteors[l].nextToUp = 1;
  • }
  • else
  • {
  • if (meteors[l].amplitude == 0)
  • meteors[l].amplitude = 20;
  • else
  • meteors[l].amplitude += 20 * (meteors[l].amplitude/Math.abs(meteors[l].amplitude));
  • meteors[l].nextToUp = 0;
  • }
  • }
  • // destruction du vaisseau
  • if((meteors[l].hitTestPoint(vaisseau.x+62,vaisseau.y+18,true)
  • || meteors[l].hitTestPoint(vaisseau.x+38,vaisseau.y-7.4,true)
  • || meteors[l].hitTestPoint(vaisseau.x+22,vaisseau.y+34,true)
  • || meteors[l].hitTestPoint(vaisseau.x+28,vaisseau.y-31.4,true)
  • || meteors[l].hitTestPoint(vaisseau.x-2,vaisseau.y-31,true)
  • || meteors[l].hitTestPoint(vaisseau.x-32.9,vaisseau.y+39,true)
  • || meteors[l].hitTestPoint(vaisseau.x-63.8,vaisseau.y+12,true)
  • || meteors[l].hitTestPoint(vaisseau.x-63.8,vaisseau.y-15.8,true)
  • || meteors[l].hitTestPoint(vaisseau.x-23.4,vaisseau.y-12.3,true)
  • ) && meteors[l].hostile)
  • {
  • crash.play();
  • vaisseau.gotoAndStop(2);
  • meteors[l].gotoAndPlay(5);
  • stage.removeEventListener(Event.ENTER_FRAME, mouv);
  • stage.removeEventListener(KeyboardEvent.KEY_DOWN, tirer);
  • gotoAndStop(6);
  • }
  • }
  • // deplacement missile
  • if (m1.x < 700)
  • {
  • m1.x +=m1.v;
  • m1.v+=2;
  • }
  • else
  • {
  • m1.x = 1000;
  • m1.dispo = true;
  • addChild(readyF);
  • }
  • }
// frame d'animation

stop();

addChild(affichScore);
affichScore.text = "Score : 0";
affichScore.setTextFormat(format);



Mouse.hide();

stage.addEventListener(Event.ENTER_FRAME, mouv);
stage.addEventListener(KeyboardEvent.KEY_DOWN, tirer);


j = 0;
k = 0;
l = 0;
niveau = 0;
score = 0;


//position missile
m1.y = -100;
m1.x = 600;



//position fumee
for (i=0; i<nbFumees; i++)
{
 fumees[i] .x = -100;
 fumees[i] .y = -100;
}



for (i=0; i<nbMeteors; i++)
{
	meteors[i].gotoAndPlay(1);
 meteors[i] .x = -100;
 meteors[i] .y = -100;
 
}



// position vaisseau
vaisseau.x = 194.4;
vaisseau.y = 169;


addChild(readyF);



function tirer(evt:KeyboardEvent){
	
	if (evt.keyCode == 32)
	{
	if (m1.dispo)
{
	m1.v = 2;
	m1.x = vaisseau.x;
	m1.y = vaisseau.y + 30;
	// boom.play();
	canal =  mSound.play();
	m1.dispo = false;
	removeChild(readyF);
	
}
	}
	
}






function mouv(evt:Event)
{
	
	nuage1.x -= nuage1.v;
	nuage2.x -= nuage2.v;
	nuage3.x -= nuage3.v;
	nuage4.x -= nuage4.v;
	
	
	if (nuage1.x < -nuage1.width)
	{
		nuage1.x = 600 + nuage1.width;
		nuage1.y = Math.random()*440;
	}
	
	
	if (nuage2.x < -nuage2.width)
	{
		nuage2.x = 600 + nuage2.width;
		nuage2.y = Math.random()*440;
	}
	
	
	if (nuage3.x < -nuage3.width)
	{
		nuage3.x = 600 + nuage3.width;
		nuage3.y = Math.random()*440;
	}
	
	
	if (nuage4.x < -nuage4.width)
	{
		nuage4.x = 600 + nuage4.width;
		nuage4.y = Math.random()*440;
	}
	
	
	
	
	
	
	
	
	vaisseau.dx = mouseX - vaisseau.x;
	vaisseau.dy = mouseY - vaisseau.y;
	vaisseau.x += vaisseau.dx*0.1;
	
	vaisseau.y += 0.2*vaisseau.dy;
	
	if (vaisseau.dx > 50)
	{
	vaisseau.feu1.width = vaisseau.dx*0.7;
	}
	else
	{
		vaisseau.feu1.width = 0.1;
	}
	
	
	
	fumees[j].x = m1.x - 10;
	fumees[j].y = m1.y;
	j++;
	
	if (j >= nbFumees)
	{j=0;}
	
	
	
	
	// deplacement etoiles
	
	
	for (k=0; k<nbEtoiles; k++)
	{
	etoiles[k].x -= etoiles[k].v;
	if (etoiles[k].x < -20)
	{
		etoiles[k].x = 600;
		etoiles[k].y = Math.random()*400;
	}
	}
	
	
	
	// deplacement meteor
	
	for (l=0; l<nbMeteors; l++)
	{
	meteors[l].x -= meteors[l].v;
	
	
	if (meteors[l].amplitude != 0){
	if (meteors[l].amplitudeP != meteors[l].amplitude)
	{
		meteors[l].y += 2*meteors[l].amplitude/Math.abs(meteors[l].amplitude);
		meteors[l].amplitudeP += meteors[l].amplitude/Math.abs(meteors[l].amplitude);
	}
	else
	{
		meteors[l].amplitude = -meteors[l].amplitude;
	meteors[l].y += 2*meteors[l].amplitude/Math.abs(meteors[l].amplitude);
		meteors[l].amplitudeP += meteors[l].amplitude/Math.abs(meteors[l].amplitude);
	}
	}
	
	
	
	if (meteors[l].x < -meteors[l].width-20 && meteors[l].hostile)
	{
		meteors[l].gotoAndPlay(19);

	}
	
	
	
	// destruction meteor
	
	if ((meteors[l].hitTestPoint(m1.x + 30, m1.y, true) 
		|| meteors[l].hitTestPoint(m1.x + 20, m1.y-8, true) 
		|| meteors[l].hitTestPoint(m1.x + 20, m1.y+8, true))
		&& meteors[l].hostile)
		{
			canal.stop();
			boom.play();
			score+=meteors[l].score;
			vaisseau.indicScore.stop();
			vaisseau.indicScore.gotoAndPlay((meteors[l].i-1)*10-9);
											
											
			affichScore.text = "Score : " + String(score);
			affichScore.setTextFormat(format);
			meteors[l].gotoAndPlay(5);
			meteors[l].hostile = false;
			m1.x = 1000;
			m1.dispo = true;
			addChild(readyF);
			
			if (meteors[l].nextToUp == 0)
			{
				meteors[l].v+= 1;
				meteors[l].nextToUp = 1;
			}
			else
			{
				if (meteors[l].amplitude == 0)
				meteors[l].amplitude = 20;
				else
				meteors[l].amplitude += 20 * (meteors[l].amplitude/Math.abs(meteors[l].amplitude));
				
				
				meteors[l].nextToUp = 0;
				
			}
			
		}
		
		
		// destruction du vaisseau
	
		
		if((meteors[l].hitTestPoint(vaisseau.x+62,vaisseau.y+18,true) 
		 || meteors[l].hitTestPoint(vaisseau.x+38,vaisseau.y-7.4,true) 
		 || meteors[l].hitTestPoint(vaisseau.x+22,vaisseau.y+34,true) 
		 || meteors[l].hitTestPoint(vaisseau.x+28,vaisseau.y-31.4,true) 
		  || meteors[l].hitTestPoint(vaisseau.x-2,vaisseau.y-31,true) 
		    || meteors[l].hitTestPoint(vaisseau.x-32.9,vaisseau.y+39,true) 
			 || meteors[l].hitTestPoint(vaisseau.x-63.8,vaisseau.y+12,true) 
			 || meteors[l].hitTestPoint(vaisseau.x-63.8,vaisseau.y-15.8,true)
			 || meteors[l].hitTestPoint(vaisseau.x-23.4,vaisseau.y-12.3,true) 
		 )  && meteors[l].hostile)
		{
			crash.play();
			
			vaisseau.gotoAndStop(2);
			meteors[l].gotoAndPlay(5);
			
			
			stage.removeEventListener(Event.ENTER_FRAME, mouv);

stage.removeEventListener(KeyboardEvent.KEY_DOWN, tirer);
			gotoAndStop(6);
			
		}

	}
	
	
	
	
	
	// deplacement missile
	
	
	if (m1.x < 700)
	{
	m1.x +=m1.v;
	m1.v+=2;
	}
	else
	{
		m1.x = 1000;
		m1.dispo = true;
	   addChild(readyF);
	}

	
}


 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 JEU DE TIR par gabha
Source avec Zip Source avec une capture ROULETTE SIMPLE TYPE CASINO par jeanbat51
Source avec Zip MOTEUR PLATEFORME 2D AVEC ITEM TEL QUE RESSORT, ÉCHELLE... (... par SamouraiPoulet
Source avec Zip BASE JEUX COMBAT par coolninja19
Source avec Zip LAN CHESS, JEU D'ÉCHEC EN RÉSEAU par darksoul

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture YOUKAI TAISEN, LA GRANDE GUERRE DES MONSTRES par raddreamer
Source avec Zip Source avec une capture BURGER MANIA - LE JEU AVEC DES HAMBURGERS DEDANS ... par pegase31
Source avec Zip Source avec une capture POOL'EM UP par broch
Source avec Zip Source avec une capture SPACE OUT V1.1 par sanglier7
Source avec Zip Source avec une capture JOUTES NAVALES par Mansuz

Commentaires et avis

Commentaire de aduermael le 30/08/2008 01:01:31

Voilà voilà !
Merci pour l'upload à EBArtSoft ! Ca plantait tout le temps...
Alors le jeu est optimisé pour jouer en 550x400 (ou proportionnel).
Là (en tout cas chez moi), quand on teste sur flashkod, le score et les munitions ne sont pas bien placés (comme l'anim est étirée).
Si vous voulez vous pouvez aussi tester sur mon blog (note du 29/08), ce sont les bonne dimensions ! (http://blog.monsieurad.com)

Commentaire de raddreamer le 30/08/2008 13:01:40

un très bon début de jeu, dommage que la fluidité ne soit pas meilleure et que la taille de la scène pas plus grande.
Un peu plus d'intervalles dans les anims ne seraient pas un luxe.
J'aime bien le genre en tout cas :)

Commentaire de aduermael le 30/08/2008 15:43:54

Raddreamer > Moi je suis assez content des tailles (enfin en 550 x 400). Pour la fluidité je ne sais pas trop comment l'améliorer... Mais je vais me pencher sur ce problème! :)
Pour les intervalles je ne vois pas trop ce que tu veux dire?
Entre les différentes scènes? (game over etc... ?)

Commentaire de raddreamer le 30/08/2008 23:29:30

je voulais parler des animations secondaires de tes persos, rocher, etc
mis à part ton réacteur, le vaisseau donne pas vraiment dans le mouvement ^^

Commentaire de pegase31 le 31/08/2008 22:01:37 administrateur CS

un truc bête question manipulation : Pourquoi ne pas avoir fait tirer à la souris tout simplement ?

Peg'

Commentaire de aduermael le 31/08/2008 22:19:00

Pegase31 > Alors en lisant ton commentaire sur le coup je me suis pas souvenu pourquoi. Alors j'ai ajouté l'option. (j'ai modifié un ou deux autres petits trucs aussi, j'ai donné l'adresse du zip à EBArtSoft, j'espère que ça va pouvoir être remplacé !

Mais en y jouant à la souris je me suis souvenu !
En fait, la barre espace fonctionne même si ta souris sort du cadre.
Hors, si tu cliques (assez souvent dans ce jeu), et que la souris est un poil hors du cadre, tu sors de l'anim. Et c'est un peu moins pratique ! :)

Bon, y a les deux options maintenant, c'est comme on préfère !

Commentaire de aduermael le 31/08/2008 22:20:19

(pardon à EBArtSoft d'envoyer un zip aussi tard d'ailleurs, mais je bossais toute la journée hier, et aujourd'hui...
J'espère que je suis pas trop chiant ! )

Commentaire de pegase31 le 31/08/2008 22:35:11 administrateur CS

Tu codes apparemment en AS3, tu as donc un évènement Event.MOUSE_LEAVE qui permet de déterminer sur la souris sort de l'écran.
Pourquoi ne pas l'adapter et, par exemple, faire une pause le temps qu'elle re-rentre ?

Peg'

Commentaire de aduermael le 31/08/2008 22:38:57

pegase31 > Ouaw ! Merde je savais même pas ça ! C'est super utile !
Oui effectivement c'est la solution ! je vais voir si je peux le faire rapidement le temps que EBArtSoft voit mon message ! Et voir si ça donne bien...

Commentaire de pegase31 le 31/08/2008 22:43:28 administrateur CS

désolé de ne pas avoir relevé le détail à temps ... mais je ne pouvais pas être sur ma source et sur celles des autres en même temps ;)

Commentaire de aduermael le 31/08/2008 22:48:24

pegase31 > Y a pas de quoi !
Par contre je comprends pas comment ça marche, j'ai fais un
stage.addEventListener(Event.MOUSE_LEAVE,pauseAnim);

et une simple fonction pauseAnim avec un trace dedans.
Et quand je sors la souris ça marche pas...

Je vais regarder un peu sur le net des détails de la fonction...

Commentaire de pegase31 le 31/08/2008 22:51:43 administrateur CS

stage.addEventListener(Event.MOUSE_LEAVE, leave);
function leave(evt:Event):void {
trace ("Mouse Leave");
}

ça marche très bien ...

Commentaire de aduermael le 31/08/2008 22:58:57

Non en fait c'est bon, c'est que quand je teste dans l'appli flash il ne détecte pas.
Mais si je lance le .swf ailleurs ça marche ! (je ne sais pas pourquoi...)

Commentaire de pegase31 le 31/08/2008 23:16:00 administrateur CS

bizarre effectivement, moi ça passe dans l'appli aussi ...

Commentaire de aduermael le 31/08/2008 23:24:42

(je suis sur mac, c'est peut-être cette version...)
Bon, je poste le zip, j'espère qu'un admin va pouvoir mettre ça à jour !

Commentaire de aduermael le 31/08/2008 23:27:25

Youhou les admins ! S'il vous plait ! J'ai un zip là => http://flash-cup.com/mkiller.zip
qui ne demande qu'à être adopté ! :)

Commentaire de aduermael le 31/08/2008 23:52:08

Merci pour la mise à jour !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

"Attirance" [ par xactise ] Hello tous ceux qui vont em lirej'ai un ptit probleme en ski concerne un peu de progg 2 clip, l'un des 2 clip est déplaçable grace au touche et je vou jeu de vaisseau........ TIR !!! [ par maat ] S'il vous pait j'ai besoin d'un volontaire super sympas pour me programmer le tir d'un vaisseau qui se deplace dans tout les sens:c'est un vaisseau qu laser d'un jeu de vaisseau [ par snakeeater1 ] bonjour je cherche un code AS pour créer un "laser" pour un jeu de vaisseau mais attention je voudrai que se laser soit continu et démarre lorsque le [FLASH MX] suivre la souris [ par toutouffe ] Bonjour, J'aimerais bien qu'un de mes movie clip suive la souris mais a retardement. J'ai vu un post qui en parlait (http://www.flashkod.com/forum.v2 [Flash MX] effet trainée [ par toutouffe ] Bonjour, J'ai un movie Clip vaisseau qui suit la souris sur l'axe des absices et je veux qu'il y ai un traine de vaisseau deriere pour faire un effet Problème collision de clips créés [ par Wally57 ] &nbsp;&nbsp;&nbsp; Salut tout le monde !&nbsp;&nbsp;&nbsp; Comme le dit le sujet, j'ai un probl&#232;me de collisons de clips cr&#233;&#233;s &nbsp;& R-Type & Blazing Star [ par Heok ] Bonjour, Mon projet sa serais de creer un petit jeu d'avion comme un peu R-type ou Blazing star Genre les ennemis arrivent a droite et l'avion dirig Urgent s'il vous plait... impossible de trouver le chemin d'acces d'un clip placé sur la scène ! [ par Siteauludo ] Bonjour, voil&#224;, je m'explique : je suis en train d'essayer de faire un mini-jeu, type plateforme. Bon j'ai 2 calques, un pour les actions, l'autr Appel à l'aide >> créer un code spécifique >> urgent, merci! [ par Gizmil ] &nbsp;&nbsp; Salut, &nbsp;&nbsp; J'en peux plus de chercher une soluce &#224; ce probl&#232;me alors je met mon .fla en ligne: http://www.gizmil.jex Probleme de hittest... [ par ministeeve ] bonjour,j'essaye de monter un petit jeu de shoot, mais j'ai un souci de hittest entre l'enemi et le tir mais pas entre l'enemi et le vaisseau, voulant


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,593 sec (3)

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