begin process at 2010 02 10 09:47:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > SPACEDIVIDE : PROTÈGE LA TERRE D'UN ÉNORME ASTÉROÏDE

SPACEDIVIDE : PROTÈGE LA TERRE D'UN ÉNORME ASTÉROÏDE


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :Concours Flash, arcade, asteroid, shoot, souris Niveau :Initié Date de création :18/08/2008 Date de mise à jour :25/08/2008 00:31:24 Vu / téléchargé :2 661 / 207

Auteur : daddy11world

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

 Description

Cliquez pour voir la capture en taille normale
Un jeu de shoot ou il faut cliquer vite et bien.

Un petit vaisseau vous aide pour détruire les débris minuscules.

J'ai travaillé un minimum de contexte et les graphismes, dites mois ce que vous en pensez.

Les armes spéciales arrivent au fur et à mesure.


Source

  • // J'utilise les tableaux, c'est archaïque mais ça marche et au moins je comprend ce que je fais ^^
  • // INITIALISATION
  • // arreter l'animation
  • stop();
  • // gel
  • var geltime=-1
  • // mines
  • var minesenstock:Number = 0;
  • if (niveau>3) {
  • minesenstock = 3;
  • }
  • var ciblemine:Number = -1;
  • var delaymine = 0;
  • // rechargement de l'onde de choc
  • var ondereload = 0;
  • ondedispo._visible = false;
  • // ...du score
  • var score:Number = 0;
  • var asterorestants:Number = 0;
  • // ...des astéroides
  • var x:Array = new Array();
  • var y:Array = new Array();
  • var ix:Array = new Array();
  • var iy:Array = new Array();
  • var s:Array = new Array();
  • var r:Array = new Array();
  • var ir:Array = new Array();
  • var dessin:Array = new Array();
  • var exist:Array = new Array();
  • // ...du premier asteroide
  • for (a=0; a<niveau; a++) {
  • x[a] = Math.random()*500+50;
  • y[a] = -Math.random()*200;
  • ix[a] = 0;
  • iy[a] = 2;
  • s[a] = 100;
  • r[a] = 0;
  • ir[a] = 0;
  • dessin[a] = 1;
  • exist[a] = true;
  • }
  • // ...de l'affichage de la sourie
  • Mouse.hide();
  • // ...du viseur (pour qu'il s'affiche par dessus les astéroïdes
  • _root.attachMovie("viseur", "viseur", 1);
  • // ...du son lorsqu'on tire
  • var shoot:Sound = new Sound();
  • shoot.attachSound("shoot");
  • _root.onMouseDown = function() {
  • shoot.stop();
  • shoot.start();
  • canon.canon.play();
  • canon2.canon.play();
  • };
  • // son d'ataque du petit vaisseau
  • var miniatk:Sound = new Sound();
  • miniatk.attachSound("miniatk");
  • // son dexplosion des asteroides
  • var kass:Sound = new Sound();
  • kass.attachSound("kass");
  • // son de lancer du missile
  • var missile:Sound = new Sound();
  • missile.attachSound("missile");
  • // le vaisseau amis
  • var reloadminiv:Number = 0;
  • // BONCLE PRINCIPALE
  • _root.onEnterFrame = function() {
  • // canons
  • canon.canon._rotation = Math.atan2(_ymouse-canon._y, (_xmouse-canon._x)/2)*180/Math.PI+180;
  • canon._height = Math.abs(_ymouse-canon._y)/2;
  • canon2.canon._rotation = Math.atan2(_ymouse-canon2._y, (_xmouse-canon2._x)/2)*180/Math.PI+180;
  • canon2._height = Math.abs(_ymouse-canon2._y)/2;
  • // onde de choc
  • if (niveau>1) {
  • ondereload++;
  • if (ondereload>70) {
  • ondedispo._visible = true;
  • if (Key.isDown(Key.LEFT)) {
  • ondereload = 0;
  • ondedechoc.play();
  • for (a=0; a<x.length; a++) {
  • iy[a] -= 2000/(s[a]*s[a]);
  • if(niveau>5){
  • iy[a] -= 200/(s[a]);
  • }
  • }
  • }
  • } else {
  • ondedispo._visible = false;
  • }
  • }
  • // missile
  • _root.miss._y -= 3;
  • if(niveau>3){
  • _root.miss._y -= 3;
  • }
  • if (_root.miss._y<-20 && niveau>2) {
  • if (Key.isDown(Key.UP)) {
  • _root.miss._y = vaisseauami._y;
  • _root.miss._x = vaisseauami._x;
  • missile.start();
  • }
  • }
  • if (miss._y<-20 && niveau>3) {
  • _root.missdispo._visible = true;
  • } else {
  • _root.missdispo._visible = false;
  • }
  • for (a=0; a<x.length; a++) {
  • if (exist[a] && Math.abs(_root.miss._x-x[a])<20 && Math.abs(_root.miss._y-y[a])<20) {
  • if (s[a]>50) {
  • expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
  • expl._x = x[a];
  • expl._y = y[a];
  • // gagner un point
  • score += 1;
  • // modifier l'asteroide touché
  • iy[a] *= 0.5;
  • iy[a] -= 2;
  • s[a] *= 0.9;
  • ir[a] = Math.random()*20-10;
  • dessin[a] = Math.floor(3.99*Math.random())+1;
  • // creer un nouvel asteroide
  • var newobj:Number = x.length;
  • x[newobj] = x[a];
  • y[newobj] = y[a];
  • ix[newobj] = Math.random()*5-2.5;
  • iy[newobj] = iy[a];
  • s[newobj] = s[a]*0.9;
  • ir[newobj] = Math.random()*20-10;
  • r[newobj] = r[a];
  • dessin[newobj] = Math.floor(3.99*Math.random())+1;
  • exist[newobj] = true;
  • } else {
  • exist[a] = false;
  • }
  • }
  • }
  • // effacer les traits existants
  • _root.clear();
  • // le vaisseau qui aide
  • // suivre la sourie
  • vaisseauami._x += (_xmouse-vaisseauami._x)/5;
  • if (_root.miss._y<0) {
  • // recharger
  • reloadminiv++;
  • }
  • // tirer
  • if (reloadminiv>5) {
  • for (a=0; a<x.length; a++) {
  • if (s[a]<50 && reloadminiv>5 && exist[a]) {
  • if (Math.abs(x[a]-vaisseauami._x)<70) {
  • if (y[a]<vaisseauami._y) {
  • reloadminiv = 0;
  • exist[a] = 0;
  • _root.lineStyle(1, 0xFFFF00, 50);
  • _root.moveTo(vaisseauami._x, vaisseauami._y);
  • _root.lineTo(x[a], y[a]);
  • score++;
  • // petite explosion
  • expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
  • expl._x = x[a];
  • expl._y = y[a];
  • // son d'explosion
  • //miniatk.stop()
  • //miniatk.start()
  • }
  • }
  • }
  • }
  • reloadminiv = 0;
  • }
  • // le gel
  • if(Key.isDown(Key.RIGHT) && geltime<-100 && niveau>4){
  • geltime=100
  • }
  • geltime--
  • // le viseur à la place de la sourie
  • viseur._x = _xmouse;
  • viseur._y = _ymouse;
  • // effacer les asteroïdes existants
  • _root.createEmptyMovieClip("base", 0);
  • // gestion de chaque asteroïde un par un
  • // compter asteroides restants
  • asterorestants = 0;
  • for (a=0; a<x.length; a++) {
  • if (exist[a]) {
  • asterorestants++;
  • // ...l'afficher
  • ref = _root.base.attachMovie("piece", a.toString(), a);
  • ref.gotoAndStop(dessin[a]);
  • ref._x = x[a];
  • ref._y = y[a];
  • ref._width = s[a];
  • ref._height = s[a];
  • ref._rotation = r[a];
  • // afficher une mine ou non
  • if (ciblemine == a) {
  • ref.mine._visible = true;
  • } else {
  • ref.mine._visible = false;
  • }
  • // ...appliquer l'inertie à la position
  • if(geltime<0 || Math.floor(a/2)*2==a){
  • x[a] += ix[a];
  • y[a] += iy[a];
  • r[a] += ir[a];
  • // ...gravité
  • iy[a] += 0.01;
  • }else{
  • ref._alpha=50
  • }
  • // ...rebon sur les bords de l'écrant
  • if (x[a]<s[a]/2 || x[a]>500-s[a]/2) {
  • ix[a] *= -1;
  • }
  • /*if (y[a]<-s[a]) {
  • iy[a] = 0;
  • y[a] = -s[a]+1;
  • }*/
  • //... fair game over si l'asteroïde touche la terre ( =en bas de l'écrant)
  • if (y[a]>500+s[a]/2) {
  • _root.base.removeMovieClip();
  • _root.gotoAndStop(4);
  • }
  • //... Lorsqu'on clique sur un asteroide :
  • ref.onPress = function() {
  • if (niveau>3 && Key.isDown(Key.DOWN) && ciblemine == -1 && minesenstock>0) {
  • minesenstock--;
  • ciblemine = this.getDepth();
  • delaymine = 100;
  • } else {
  • // petite explosion
  • kass.stop();
  • kass.start();
  • expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
  • expl._x = _xmouse;
  • expl._y = _ymouse;
  • // gagner un point
  • score += 2;
  • // Si c'est un asteroïde normale, il se divise :
  • // modifier l'asteroide cliqué
  • iy[this.getDepth()] *= 0.5;
  • iy[this.getDepth()] -= 2;
  • s[this.getDepth()] *= 0.9;
  • ir[this.getDepth()] = Math.random()*10-5;
  • dessin[this.getDepth()] = Math.floor(3.99*Math.random())+1;
  • // creer un nouvel asteroide
  • var newobj:Number = x.length;
  • x[newobj] = x[this.getDepth()];
  • y[newobj] = y[this.getDepth()];
  • ix[newobj] = Math.random()*5-2.5;
  • iy[newobj] = iy[this.getDepth()];
  • s[newobj] = s[this.getDepth()]*0.9;
  • ir[newobj] = Math.random()*10-5;
  • r[newobj] = r[this.getDepth()];
  • dessin[newobj] = Math.floor(3.99*Math.random())+1;
  • exist[newobj] = true;
  • }
  • };
  • }
  • }
  • // mines
  • dispnombremines.gotoAndStop(minesenstock+1);
  • delaymine--;
  • if (delaymine<=0 && ciblemine != -1 && exist[ciblemine]) {
  • kass.start();
  • for (a=0; a<x.length; a++) {
  • if (Math.abs(x[a]-x[ciblemine])<80 && Math.abs(y[a]-y[ciblemine])<80) {
  • exist[a] = false;
  • score++;
  • expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
  • expl._x = x[a];
  • expl._y = y[a];
  • }
  • }
  • ciblemine = -1;
  • }
  • if (asterorestants == 0) {
  • _root.gotoAndStop(2);
  • }
  • };
// J'utilise les tableaux, c'est archaïque mais ça marche et au moins je comprend ce que je fais ^^
// INITIALISATION
// arreter l'animation
stop();
// gel
var geltime=-1
// mines
var minesenstock:Number = 0;
if (niveau>3) {
	minesenstock = 3;
}
var ciblemine:Number = -1;
var delaymine = 0;
// rechargement de l'onde de choc
var ondereload = 0;
ondedispo._visible = false;
// ...du score
var score:Number = 0;
var asterorestants:Number = 0;
// ...des astéroides
var x:Array = new Array();
var y:Array = new Array();
var ix:Array = new Array();
var iy:Array = new Array();
var s:Array = new Array();
var r:Array = new Array();
var ir:Array = new Array();
var dessin:Array = new Array();
var exist:Array = new Array();
// ...du premier asteroide
for (a=0; a<niveau; a++) {
	x[a] = Math.random()*500+50;
	y[a] = -Math.random()*200;
	ix[a] = 0;
	iy[a] = 2;
	s[a] = 100;
	r[a] = 0;
	ir[a] = 0;
	dessin[a] = 1;
	exist[a] = true;
}
// ...de l'affichage de la sourie
Mouse.hide();
// ...du viseur (pour qu'il s'affiche par dessus les astéroïdes
_root.attachMovie("viseur", "viseur", 1);
// ...du son lorsqu'on tire
var shoot:Sound = new Sound();
shoot.attachSound("shoot");
_root.onMouseDown = function() {
	shoot.stop();
	shoot.start();
	canon.canon.play();
	canon2.canon.play();
};
// son d'ataque du petit vaisseau
var miniatk:Sound = new Sound();
miniatk.attachSound("miniatk");
// son dexplosion des asteroides
var kass:Sound = new Sound();
kass.attachSound("kass");
// son de lancer du missile
var missile:Sound = new Sound();
missile.attachSound("missile");
// le vaisseau amis
var reloadminiv:Number = 0;
// BONCLE PRINCIPALE
_root.onEnterFrame = function() {
	// canons
	canon.canon._rotation = Math.atan2(_ymouse-canon._y, (_xmouse-canon._x)/2)*180/Math.PI+180;
	canon._height = Math.abs(_ymouse-canon._y)/2;
	canon2.canon._rotation = Math.atan2(_ymouse-canon2._y, (_xmouse-canon2._x)/2)*180/Math.PI+180;
	canon2._height = Math.abs(_ymouse-canon2._y)/2;
	// onde de choc
	if (niveau>1) {
		ondereload++;
		if (ondereload>70) {
			ondedispo._visible = true;
			if (Key.isDown(Key.LEFT)) {
				ondereload = 0;
				ondedechoc.play();
				for (a=0; a<x.length; a++) {
					iy[a] -= 2000/(s[a]*s[a]);
					if(niveau>5){
						iy[a] -= 200/(s[a]);
						}
				}
				
			}
		} else {
			ondedispo._visible = false;
		}
	}
	// missile
	_root.miss._y -= 3;
	if(niveau>3){
		_root.miss._y -= 3;
	
		}
	if (_root.miss._y<-20 && niveau>2) {
		if (Key.isDown(Key.UP)) {
			_root.miss._y = vaisseauami._y;
			_root.miss._x = vaisseauami._x;
			missile.start();
		}
	}
	if (miss._y<-20 && niveau>3) {
		_root.missdispo._visible = true;
	} else {
		_root.missdispo._visible = false;
	}
	for (a=0; a<x.length; a++) {
		if (exist[a] && Math.abs(_root.miss._x-x[a])<20 && Math.abs(_root.miss._y-y[a])<20) {
			if (s[a]>50) {
				expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
				expl._x = x[a];
				expl._y = y[a];
				// gagner un point
				score += 1;
				// modifier l'asteroide touché
				iy[a] *= 0.5;
				iy[a] -= 2;
				s[a] *= 0.9;
				ir[a] = Math.random()*20-10;
				dessin[a] = Math.floor(3.99*Math.random())+1;
				// creer un nouvel asteroide
				var newobj:Number = x.length;
				x[newobj] = x[a];
				y[newobj] = y[a];
				ix[newobj] = Math.random()*5-2.5;
				iy[newobj] = iy[a];
				s[newobj] = s[a]*0.9;
				ir[newobj] = Math.random()*20-10;
				r[newobj] = r[a];
				dessin[newobj] = Math.floor(3.99*Math.random())+1;
				exist[newobj] = true;
			} else {
				exist[a] = false;
			}
		}
	}
	// effacer les traits existants
	_root.clear();
	// le vaisseau qui aide
	// suivre la sourie
	vaisseauami._x += (_xmouse-vaisseauami._x)/5;
	if (_root.miss._y<0) {
		// recharger
		reloadminiv++;
	}
	// tirer
	if (reloadminiv>5) {
		for (a=0; a<x.length; a++) {
			if (s[a]<50 && reloadminiv>5 && exist[a]) {
				if (Math.abs(x[a]-vaisseauami._x)<70) {
					if (y[a]<vaisseauami._y) {
						reloadminiv = 0;
						exist[a] = 0;
						_root.lineStyle(1, 0xFFFF00, 50);
						_root.moveTo(vaisseauami._x, vaisseauami._y);
						_root.lineTo(x[a], y[a]);
						score++;
						// petite explosion
						expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
						expl._x = x[a];
						expl._y = y[a];
						// son d'explosion
						//miniatk.stop()
						//miniatk.start()
					}
				}
			}
		}
		reloadminiv = 0;
	}
	// le gel
	if(Key.isDown(Key.RIGHT) && geltime<-100 && niveau>4){
		geltime=100
		}
	geltime--
	// le viseur à la place de la sourie
	viseur._x = _xmouse;
	viseur._y = _ymouse;
	// effacer les asteroïdes existants
	_root.createEmptyMovieClip("base", 0);
	// gestion de chaque asteroïde un par un	
	// compter asteroides restants
	asterorestants = 0;
	for (a=0; a<x.length; a++) {
		if (exist[a]) {
			asterorestants++;
			// ...l'afficher
			ref = _root.base.attachMovie("piece", a.toString(), a);
			ref.gotoAndStop(dessin[a]);
			ref._x = x[a];
			ref._y = y[a];
			ref._width = s[a];
			ref._height = s[a];
			ref._rotation = r[a];
			// afficher une mine ou non
			if (ciblemine == a) {
				ref.mine._visible = true;
			} else {
				ref.mine._visible = false;
			}
			// ...appliquer l'inertie à la position
			if(geltime<0 || Math.floor(a/2)*2==a){
			x[a] += ix[a];
			y[a] += iy[a];
			r[a] += ir[a];
			// ...gravité
			iy[a] += 0.01;
			}else{
				ref._alpha=50
				}
			// ...rebon sur les bords de l'écrant
			if (x[a]<s[a]/2 || x[a]>500-s[a]/2) {
				ix[a] *= -1;
			}
			/*if (y[a]<-s[a]) {
																						iy[a] = 0;
																						y[a] = -s[a]+1;
																					}*/
			//... fair game over si l'asteroïde touche la terre ( =en bas de l'écrant)
			if (y[a]>500+s[a]/2) {
				_root.base.removeMovieClip();
				_root.gotoAndStop(4);
			}
			//... Lorsqu'on clique sur un asteroide :
			ref.onPress = function() {
				if (niveau>3 && Key.isDown(Key.DOWN) && ciblemine == -1 && minesenstock>0) {
					minesenstock--;
					ciblemine = this.getDepth();
					delaymine = 100;
				} else {
					// petite explosion
					kass.stop();
					kass.start();
					expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
					expl._x = _xmouse;
					expl._y = _ymouse;
					// gagner un point
					score += 2;
					// Si c'est un asteroïde normale, il se divise :
					// modifier l'asteroide cliqué
					iy[this.getDepth()] *= 0.5;
					iy[this.getDepth()] -= 2;
					s[this.getDepth()] *= 0.9;
					ir[this.getDepth()] = Math.random()*10-5;
					dessin[this.getDepth()] = Math.floor(3.99*Math.random())+1;
					// creer un nouvel asteroide
					var newobj:Number = x.length;
					x[newobj] = x[this.getDepth()];
					y[newobj] = y[this.getDepth()];
					ix[newobj] = Math.random()*5-2.5;
					iy[newobj] = iy[this.getDepth()];
					s[newobj] = s[this.getDepth()]*0.9;
					ir[newobj] = Math.random()*10-5;
					r[newobj] = r[this.getDepth()];
					dessin[newobj] = Math.floor(3.99*Math.random())+1;
					exist[newobj] = true;
				}
			};
		}
	}
	// mines
	dispnombremines.gotoAndStop(minesenstock+1);
	delaymine--;
	if (delaymine<=0 && ciblemine != -1 && exist[ciblemine]) {
		kass.start();
		for (a=0; a<x.length; a++) {
			if (Math.abs(x[a]-x[ciblemine])<80 && Math.abs(y[a]-y[ciblemine])<80) {
				exist[a] = false;
				score++;
				expl = _root.attachMovie("explosion", "expl"+score.toString(), -10-score);
				expl._x = x[a];
				expl._y = y[a];
			}
		}
		ciblemine = -1;
	}
	if (asterorestants == 0) {
		_root.gotoAndStop(2);
	}
};


 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


 Historique

19 août 2008 17:13:24 :
Ajout de : niveaux, petit vaisseau, explosions, sons Modification : sons, graphismes ...
21 août 2008 16:26:17 :
Ajout des canons, changement de l'image du vaisseau et des sons. Retrait du .fla qui fait plus de 1Mo
25 août 2008 00:31:24 :
les armes spéciales !

 Sources du même auteur

Source avec Zip Source avec une capture UNE TÊTE REGARDE LA SOURIS (ILLUSION DE 3D)
Source avec Zip Source avec une capture LABY BALL : SEREZ VOUS ASSEZ ADROIT POUR TRAVERSER LE LABYRI...
Source avec Zip Source avec une capture NUIT ETOILÉE EN 3D
Source avec Zip Source avec une capture DANGEROUS RACE
Source avec Zip Source avec une capture KB KLIK BALL

 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 JEU ARCADE TRIEZ LES BOULES! par Voroz
Source avec Zip Source avec une capture KB KLIK BALL par daddy11world

Commentaires et avis

Commentaire de daddy11world le 18/08/2008 19:40:18

Pensez vous qu'il faudrait ajouter d'autres armes ?

Commentaire de EBArtSoft le 18/08/2008 20:21:38 administrateur CS

237 !

Commentaire de pegase31 le 18/08/2008 21:06:48 administrateur CS

donc, si j'ai bien compris, on ne peut jamais gagner à ce jeu ?

Peg'

Commentaire de EBArtSoft le 18/08/2008 23:25:09 administrateur CS

Pegase31> je vois ou tu veux en venir :p
Mais il y a bien 3 phases intro/jeu/fin peut importe si c'est un jeu en niveau ou un jeu en score.

@+

Commentaire de raddreamer le 18/08/2008 23:54:49

Mouais,
Graphiquement ça a évolué depuis ton Klik Ball mais ça m'y fait quand même beaucoup penser.
Le laser est assez strident je trouve, j'ai vite coupé le son tellement il me hurlait dans les oreilles ^^
On entend le bruit du laser mais pas d'explosion lors de la fragmentation de la comète.
C'est dommage aussi que la Terre n'ait aucun avenir :(

Au final tu veux assembler tous tes jeux pour faire un wario ware c'est ça ? :D
Etant donné le côté variation du Klik Ball en terme de jeu, j'aurai bien vu le tout regroupé

Commentaire de pegase31 le 19/08/2008 08:04:06 administrateur CS

Raddreamer à résumé ce que je voulais dire : au final tu ne peux pas sauver pas la terre. Ok c'est un jeu à score, mais la finalité est tout le temps la même. C'est pas très "motivant" de jouer, je trouve ... à part avoir un gros chiffre à la fin et une souris morte ;)

Sinon c'est clair que tu as pas mal progressé depuis ta dernière source.

Et pour répondre à ta question, oui il faudrait d'autres armes, genre une grosse bombe à neutron bien large histoire de faire un peu de ménage dans un gros coup dur. Tu pourrais aussi ajouter un effet d'explosion lors du tir de laser et quelques effets supplémentaires, car même quand on tire, on ne sait pas si on a vraiment touché une cible ou pas (mise à part la démultiplication visuelle des astéroïdes)

Après, pour parler programmation (je suis plus doué dans ce domaine), l'utilisation de tableaux est certes efficace, mais ça reste un des objets d'ensemble les plus lourd à gérer en mémoire. Mais sans utilisation de classes ici, je doute que tu puisses faire facilement autrement ...

Par contre, plusieurs choses me chagrinent :

- Pourquoi ne pas faire un startDrag sur ton curseur plutôt que de modifier constamment ses coordonnées ?
- Dans tes tableaux, pourquoi ne pas créer un objet pour chaque astéroïdes contenant les valeurs qui lui sont propres dans un tableau unique et y faire référence en début de tout tes tests ? Ca éviterais les multiple accès aux multiples tableaux et donc optimiserait la charge CPU pour les tests.
- De ce que je vois dans ton code, tu fais un attachMovie chaque frame sur chacun des astéroïdes ? tu réécrases donc les astéroïdes existants ? Tu devrais simplement ajouter ceux qui viennent d'êtres créés et pas ajouter encore ceux qui y sont déjà. De plus, ça t'éviterais d'avoir à réappliquer sans cesse la fonction "onPress" sur tout tes clips.
- Tu pourrais faire un test de touché de terre relatif à la terre (c'est à dire en forme d'arc) et pas de ligne droite.

Donc beaucoup d'optimisation de ton code pour un jeu qui semble être infini et pompe pas mal de CPU pour rien au final.

Ah, au fait "toto /= 2" fonctionne aussi bien que "toto *= .5" ;) mais je pinaille ;)

Peg'

Commentaire de pegase31 le 19/08/2008 08:06:31 administrateur CS

Ah oui, j'ai aussi oublié un truc important :

Puisque c'est un jeu à score, il serait bien de mettre un script php d'enregistrement des scores pour pouvoir se comparer aux autres et pouvoir jouer à "celui qui à la plus grosse" avec ses potes ;)

C'est quand qu'on a l'option "éditer" sur les posts de ce forum ?

Peg'

Commentaire de EBArtSoft le 19/08/2008 10:03:33 administrateur CS

Pegase31> Jamaiiiiis ! haha faut savoir tourner 7 fois ses doigts dans ses mains avant d'ecrire un post (ça ce dit ça ?)

En même temps l'avenir de la terre...

@+

Commentaire de raddreamer le 19/08/2008 10:14:44

Et si à intervalles réguliers tu faisais partir des vaisseaux de la Terre, ça motiverait un peu plus ^o^

Commentaire de daddy11world le 19/08/2008 12:08:41

J'aime bien l'idée des vaisseaux. Je pourrais ajouter des "bots" minuscules qui éliminent les petits bouts ...

Et si tous les petits bouts sont détruits, on a gagné ...

Bon je m'y met

(Si je fait fausse route et que ça a l'air nul dites le moi ^^ ça m'évitera 2 h de code)

Merci pour vos multiples remarques constructives :)

Commentaire de pegase31 le 19/08/2008 12:14:34 administrateur CS

non, non, moi j'approuve ;) à ce moment-là, tu devrais aussi ajouter un temps dans le score .. pour avoir au moins deux paramètres à comparer.

Peg'

Commentaire de daddy11world le 19/08/2008 12:44:06

Pour le high score avec php, le problème, c'est que si on a la source, on peut facilement trafiquer les scores

Commentaire de pegase31 le 19/08/2008 12:47:08 administrateur CS

hé oui, mais c'est le jeu ... les sources que tu met ici sont forcément du domaine public. Après t'es pas obligé de mettre ton code d'accés ou même ton PHP en source.

Peg'

Commentaire de daddy11world le 19/08/2008 13:04:28

en fait, pour poster, je compte mettre un loadvar avec en paramètre de l'url le score

Mais dans ces cas la on peut taper l'url avec le score que l'on veut...

Commentaire de pegase31 le 19/08/2008 13:07:47 administrateur CS

n'oublies pas que ton jeu est fournis en source, mais n'est pas prévu pour être mis en source sur un site quelconque. son but est d'être intégré dans la partie jeu de code-source ...

Peg'

Commentaire de daddy11world le 19/08/2008 17:21:34

Je crois qu'on peut le considérer maintenant comme une version 2.0 ^^

Commentaire de raddreamer le 19/08/2008 17:29:29

Un peu plus poussé oui :D
J'ai l'impression de jouer à Pang mais en version spatiale :D
Bon par contre le vaisseau il ressemble pas du tout au Zeus :p

Petite question au passage, as-tu prévu qu'on puisse finir ton jeu ? ^^;
Quand je vois la difficulté au niveau 3 j'ai peur qu'on puisse pas aller loin :(

Commentaire de daddy11world le 19/08/2008 17:35:38

Bin j'en ai assez fait pour aujourd'hui alors je laisse ça pour demain (une belle conclusion animée ...)

Je sais pas trop à quel niveau considérer le jeu comme fini ... sa dépend de la difficulté, et elle a fâcheusement tendance à dépendre de la souris et de la config du joueur

En fait le vaisseau en bas c'est pas censé être le même que celui de l'intro



Commentaire de stefbuet le 19/08/2008 23:21:40

j'ai fait aussi 237 :D
Par contre impossible d'aller plus loin.

Commentaire de EBArtSoft le 20/08/2008 00:30:32 administrateur CS

euh... le score est remis a zero a chaque niveau pas top !
et puis les sons sont pas tres futuriste on dirais counter strike sur game boy color :p

Aller encore quelques petits efforts :p

Commentaire de daddy11world le 20/08/2008 13:01:38

435 (avec un ordi qui rame un peu c'est plus facile ^^)

Commentaire de stefbuet le 20/08/2008 13:04:39

C'est pour cela que tu devrais changer tes vitesses de px/frame en px/s en calculant un cooeficiant à appliquer à tous les déplacements. Utilise la fonction getTimer() pour cela ;)

Commentaire de daddy11world le 20/08/2008 15:27:24

ok

j'y avais bien pensé mais je connaissais pas cette fonction ;)

Commentaire de daddy11world le 21/08/2008 11:11:48

Merci MADenigma pour tes images :)

Commentaire de daddy11world le 22/08/2008 23:26:00

Les cannons sont utiles d'après vous ?

Commentaire de stefbuet le 23/08/2008 13:47:32

Ben, il tirent quelque chose ?
Tu devrais donner une certaine vie à la planete et lorsqu'un astéroide s'ecrase, enlever de la vie au lieu de finir la partie directement.

Commentaire de daddy11world le 25/08/2008 00:34:33

Je n'ai pas mis de vie à la planète, mais 4 équipements spéciaux touts nouveaux.

Le jeu s'étale sur 7 niveaux, et si on le fini on a droit à une conclusion.

Le problème du moment, c'est que les astéroïdes montent trop haut, on ne les vois plus, et on doit attendre.

Sinon, vous avez des idées d'armes ?

Commentaire de raddreamer le 25/08/2008 02:03:06

une navette avec bruce willis qui amène une bombe atomique :)

Commentaire de raddreamer le 25/08/2008 02:09:29

Le jeu s'améliore, par contre je sais pas si tu as le droit d'utiliser un vyper de battestar galactica dans ton jeu :s
Bon c'est pas un sprite déjà existant ni une image de la série, mais on le reconnait si on connait un peu la série ^^;

Faudrait mettre un bruit d'onde de choc pour ton arme peut-etre non ?
Je pense que niveau armes ça suffit, peut-etre mettre plus d'autonomie à ton chasseur. La scène est déjà bien petite faudrait pas en rajouter trop

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Le shoot'em up de tom [ par makikofsky ] C encore moi ;)allez voir sur mon site j'ai légèrement modifié la base gracieusement offerte par TOM (il est fort l'enfoiré! ;)C'est sur la page d'acc jeu de dessin [ par patrickgilet ] Dans un clip d'occurrence "zonedessin", j'ai limité "l'action de la souris".Normalement, on ne devrait pas pouvoir dessiner en dehors de ce cadre. Mai Effet de fusion d'image au passage de la souris sur un bouton [ par galaxiae ] Bonjour à tous!Actuellement je travaille sur le développement d'un site interactif et je me retrouve embêté car je n'arrive pas à réaliser un effet pa bouton et clip (débutant) [ par phm666 ] bonjour je cherche à faire jouer un clip d'animation par exemple lorsque je passe ma souris sur un bouton.J'insère donc un clip dans l'image "dessus", apparition dun texte lors dun passage de la souris [ par eryk17 ] comment faire pour que lorsque lon passe la souris sur un endroit d'une page il ya un texte qui s'affiche se serait dans une cellule d'un tableau.merc Suivi de souris [ par vdiac ] Bonjour @ Tous, j'ai une petite question, comment fait t on pour pouvoir faire une animation simple qui suit la souris ( J'ai trouvé qqc sur le site clip qui suit la souris [ par celbob ] Salut,j'essaie d'avoir un clip qui suit la position de la souris (en _x uniquement). Jusque là, j'y suis arrivée (avec startDrag), ms du coup, aucun b faire pivoter un bras par clik de la souris [ par dri11 ] Bonjour, je voudrais savoir s'il est possible par exemple de cliker sur une aiguille d'une horloge statique pour déplacer l'aiguille à l'heure que l o truc qui suit la souris [ par Wally57 ] je voudrais savoir quel actions il faut mettres pour qu un symbole suive la souris mais ne reste pas tout le temps dessus, il va tjs vers le curseur e shoot em up complet [ par wolfmike ] salut a tous... j ai un gro probleme... je cherche une source d un shoot em up complet!!!!!(j ai bien di complet) je veu pa d un truc trop pourri...ce


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,811 sec (3)

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