Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DANGEROUS RACE


Information sur la source

Catégorie :Jeux Classé sous : Concours Flash, Arcade, course, voiture, effet 3D Niveau : Initié Date de création : 28/07/2008 Date de mise à jour : 02/08/2008 16:29:47 Vu / téléchargé: 3 724 / 275

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Un jeu de course ou vous devez parcourir 2000 m le plus vite possible en évitant les obstacles de plus en plus nombreux.

Vue en "3D" bricolée.

Gestion d'éléments par tableaux.
 

Source

  • stop();
  • // variables définissant le joueur :
  • // position :
  • _root.win._visible = false
  • px = 0;
  • pz = -30;
  • // vitesse :
  • iz = 0;
  • //Variables générales
  • // chronométre :
  • time = 0;
  • // quatres tableaux qui définissent les obstacles
  • // Les deux valeur à l'initialisation sont celles des deux piques du départ
  • // position :
  • var ox:Array = new Array(-10, 10);
  • var oz:Array = new Array(0, 1);
  • // taille :
  • var ow:Array = new Array(1, 1);
  • var oh:Array = new Array(5, 5);
  • // On créé l'ensemble des obstacles de maniére plus ou moins aléatoire :
  • // vvv---- c'est le nombre d'obstacles
  • for (a=2; a<100; a++) {
  • // position
  • ox[a] = Math.random()*25-12;
  • oz[a] = oz[a-1]+10/Math.sqrt(a);
  • // taille
  • ow[a] = Math.random()*2+1;
  • oh[a] = 0.5;
  • }
  • // On vérifi qu'il n'y a pas une ligne droite dégagée sur le trajet
  • // Pour cela on compte le nombre d'objet obstruant chaque ligne droite :
  • // Pour chaque ligne droite ...
  • for (i=-10; i<10; i++) {
  • // init le compteur d'obstacles en travers du chemin
  • ok = 0;
  • // ... pour chaque objet
  • for (a=0; a<ox.length; a++) {
  • // vérifier s'il est en travers du chemin
  • if (Math.abs(i-ox[a])<ow[a]) {
  • // si c'est le cas, il y a un obstacle en travers du chemin de plus
  • ok++;
  • }
  • }
  • // il faut au moins 4 obstacles par ligne droite.
  • if (ok<4) {
  • // sinon on regénére les obstacles en replayant l'animation.
  • _root.gotoAndPlay(4);
  • }
  • }
  • // la boucle principale
  • _root.onEnterFrame = function() {
  • // Afficher ou non le "you win" en fonction de la position du joueur et de la position du dérnier obstacle.
  • if (pz>oz[oz.length-1]) {
  • _root.win._visible = true;
  • } else {
  • _root.win._visible = false;
  • }
  • // gérer le chrono en fonction de la position du joueur
  • if (pz<oz[oz.length-1]) {
  • time++;
  • }
  • if (pz<0) {
  • time = 0;
  • }
  • // appliquer la vitesse à la position
  • pz += iz/10;
  • // Frotement qui réduisent la vitesse.
  • iz *= 0.95;
  • // remplacer le support d'affichage des obstacles <=> clear screen
  • _root.createEmptyMovieClip("truc", 1);
  • // gestion des objets un par un
  • for (a=0; a<ox.length; a++) {
  • var ref:MovieClip=null
  • // si l'obstacle est devant le joueur :
  • if (pz<oz[a]) {
  • // l'afficher
  • ref = _root.truc.attachMovie("mur", a, Math.floor(-oz[a]));
  • // l'afficher transparent si il est trop près du joueur
  • if (oz[a]-pz<3) {
  • ref._alpha = (oz[a]-pz)*33;
  • }
  • // Affichage "3D" : positionner et redimensionner son image sur l'écrant en fonction de ses positions théoriques
  • ref._x = 200+(ox[a]-px)/(oz[a]-pz)*100;
  • ref._y = 200-(oz[a]-pz)*2;
  • ref._height = oh[a]/(oz[a]-pz)*100;
  • ref._width = ow[a]/(oz[a]-pz)*100;
  • ref.stop()
  • }
  • // collision avec l'objet -> game over
  • if (pz<oz[a] && pz>oz[a]-iz*0.2 && Math.abs(px-ox[a])<ow[a]/3) {
  • play();
  • if(ref!=null){
  • ref.play()
  • }
  • }
  • }
  • // Les touches, tourner
  • if (Key.isDown(Key.LEFT)) {
  • px--;
  • if (px<-10) {
  • px = -10;
  • }
  • }
  • if (Key.isDown(Key.RIGHT)) {
  • px++;
  • if (px>10) {
  • px = 10;
  • }
  • }
  • // Les touches : accélérer
  • if (Key.isDown(Key.UP)) {
  • iz++;
  • }
  • if (Key.isDown(Key.DOWN)) {
  • iz--;
  • }
  • };
  • // Lorsqu'on clique sur le "you win" on revient au départ
  • _root.win.onPress = function() {
  • _root.gotoAndPlay(5);
  • };
stop();
// variables définissant le joueur :
// position :
_root.win._visible = false
px = 0;
pz = -30;
// vitesse :
iz = 0;
//Variables générales
// chronométre :
time = 0;
// quatres tableaux qui définissent les obstacles
// Les deux valeur à l'initialisation sont celles des deux piques du départ
// position :
var ox:Array = new Array(-10, 10);
var oz:Array = new Array(0, 1);
// taille :
var ow:Array = new Array(1, 1);
var oh:Array = new Array(5, 5);
// On créé l'ensemble des obstacles de maniére plus ou moins aléatoire :
//          vvv---- c'est le nombre d'obstacles
for (a=2; a<100; a++) {
	// position
	ox[a] = Math.random()*25-12;
	oz[a] = oz[a-1]+10/Math.sqrt(a);
	// taille
	ow[a] = Math.random()*2+1;
	oh[a] = 0.5;
}
// On vérifi qu'il n'y a pas une ligne droite dégagée sur le trajet
// Pour cela on compte le nombre d'objet obstruant chaque ligne droite :
// Pour chaque ligne droite ...
for (i=-10; i<10; i++) {
	// init le compteur d'obstacles en travers du chemin
	ok = 0;
	// ... pour chaque objet
	for (a=0; a<ox.length; a++) {
		// vérifier s'il est en travers du chemin
		if (Math.abs(i-ox[a])<ow[a]) {
			// si c'est le cas, il y a un obstacle en travers du chemin de plus
			ok++;
		}
	}
	// il faut au moins 4 obstacles par ligne droite.
	if (ok<4) {
		// sinon on regénére les obstacles en replayant l'animation.
		_root.gotoAndPlay(4);
	}
}
// la boucle principale
_root.onEnterFrame = function() {
		// Afficher ou non le "you win" en fonction de la position du joueur et de la position du dérnier obstacle.
	if (pz>oz[oz.length-1]) {
		_root.win._visible = true;
	} else {
		_root.win._visible = false;
	}
	// gérer le chrono en fonction de la position du joueur
	if (pz<oz[oz.length-1]) {
		time++;
	}
	if (pz<0) {
		time = 0;
	}
	// appliquer la vitesse à la position
	pz += iz/10;
	// Frotement qui réduisent la vitesse.
	iz *= 0.95;
	// remplacer le support d'affichage des obstacles <=> clear screen 
	_root.createEmptyMovieClip("truc", 1);
	// gestion des objets un par un
	for (a=0; a<ox.length; a++) {
		var ref:MovieClip=null
		// si l'obstacle est devant le joueur :
		if (pz<oz[a]) {
			// l'afficher
			ref = _root.truc.attachMovie("mur", a, Math.floor(-oz[a]));
			// l'afficher transparent si il est trop près du joueur
			if (oz[a]-pz<3) {
				ref._alpha = (oz[a]-pz)*33;
			}
			// Affichage "3D" : positionner et redimensionner son image sur l'écrant en fonction de ses positions théoriques
			ref._x = 200+(ox[a]-px)/(oz[a]-pz)*100;
			ref._y = 200-(oz[a]-pz)*2;
			ref._height = oh[a]/(oz[a]-pz)*100;
			ref._width = ow[a]/(oz[a]-pz)*100;
			ref.stop()
		}
		// collision avec l'objet -> game over
		if (pz<oz[a] && pz>oz[a]-iz*0.2 && Math.abs(px-ox[a])<ow[a]/3) {
			play();
			if(ref!=null){
				ref.play()
				}
		}
	}
	// Les touches, tourner
	if (Key.isDown(Key.LEFT)) {
		px--;
		if (px<-10) {
			px = -10;
		}
	}
	if (Key.isDown(Key.RIGHT)) {
		px++;
		if (px>10) {
			px = 10;
		}
	}
	// Les touches : accélérer
	if (Key.isDown(Key.UP)) {
		iz++;
	}
	if (Key.isDown(Key.DOWN)) {
		iz--;
	}
};
// Lorsqu'on clique sur le "you win" on revient au départ
_root.win.onPress = function() {
	_root.gotoAndPlay(5);
};

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

02 août 2008 16:29:47 :
Ajout de la source et petites modifications

Commentaires et avis

signaler à un administrateur
Commentaire de daddy11world le 28/07/2008 19:37:17

Monmeilleur temps : 247

signaler à un administrateur
Commentaire de stefbuet le 28/07/2008 22:43:35

116 :)

signaler à un administrateur
Commentaire de raddreamer le 29/07/2008 04:16:45

Sympa le style oldies du jeu, ça serait bien qu'on puisse un peu plus s'identifier sur le circuit, quelques fois le passage entre les obstacles se négocie à quelques pixels.

signaler à un administrateur
Commentaire de florianpoi1 le 29/07/2008 16:42:58

pas mal ce jeux

signaler à un administrateur
Commentaire de Blacknight91titi le 29/07/2008 20:10:35 8/10

Bonjour,

L'idée et le rendu sont plutôt de bon goût bien qu'un effort au niveau du graphisme serait le bienvenue.
Au passage, penses à mettre une limite avant la ligne de départ, on peut en effet partir en arrière et ne jamais s'arreter. Ce n'est pas un bug en soit, mais c'est un peu à régler ;)

Même remarque que Raddreamer, cela se négocie à quelques pixels, d'autant que le passage d'un cran sur la droite et la gauche est trop sec. Essai d'alléger cela en créeant un déplacement progressif (de la même manière que tu as fait pour avant et arrière)

Blacknight
Note : 8/10, bonne continuation

signaler à un administrateur
Commentaire de pegase31 le 30/07/2008 11:08:38 administrateur CS

moi je trouve que pour une meilleure prise en main, il serait plus efficace de faire un contrôle latéral à la souris avec accélération manuelle.

Mais ce n'est qu'une suggestion.

Après, je reste du même avis que Blacknight et Raddreamer, affine ton code, nettoie et applique les conseils qui te sont donnés dans la source des étoiles.

Peg'

signaler à un administrateur
Commentaire de WhiteMagus le 30/07/2008 11:40:13

Hello.
Mon ordinateur avec le tout Adobe est HS et je ne peux me passer de flash plus longtemps (1 jour oO) alors je poste des commentaires sur flashkod :)

Alors bien sûr je peux pas voir le code, donc désolé, je commenterai que l'ergonomie et le graphisme.

Le style rétro est sympa. Les barrières à éviter sont bien dans ce style. Mais Quelques trucs dérangent. Notamment l'écriture Arial avec antialiasing, ça casse un peu l'ambiance. Si tu pouvais mettre une vieille écriture bitmap, qui défile à la Space Invaders, ça rendrait beaucoup mieux.
Le départ est dérangeant. On ne perçoit pas bien les barrières du départ avec le texte. Un défilement horizontal serait le bienvenu.
Le drapeau est pas top top. Il est suffisant pour comprendre que c'est le départ, mais il n'est pas assez "réel". C'est un découpage avec un biseautage... Il vaudrait mieux encore ne pas mettre de biseautage et créer des vrais pixels bien gros, bien carrés comme le reste du design plutôt que d'agrandir une image en 72ppp. De même le dégradé des poteaux est trop net pour un jeu pixellisé.
La bande blanche en bas est vraiment trop massive. Si c'est une bande pour marquer le départ, il faudrait l'intégrer dans la pseudo 3D et qu'elle soit beaucoup plus petite.

Le temps devrait être inscrit lorsqu'on perd et pourquoi pas clignoter, ou avoir un effet sympa. Juste pour rendre le jeu un peu dynamique.

Le "ton temps" semble posé ici on ne sait pourquoi, il est sans majuscule, et d'une banalité horrible Arial, 12 px... Essaie de mettre encore une fois une écriture pixellisée dans un cadre qui contient le texte "TON TEMPS" et dessous le temps qui s'écoule.

Pour ce qui est du gameplay, il faudrait pouvoir sélectionner un niveau, qui ferait varier le nombre de barrières.
Désolé Peg, je trouve le gameplay au clavier vraiment plaisant. D'autant qu'un jeu de réflexe à la souris est daubé par la sensi de la souris qui varie d'un poste à l'autre. Surtout sur un si petit espace.
Pour ce qui est du déplacement horizontal, désolé Blacknight ( :) ) je trouve que le déplacement par accoups est plaisant, car il te place sur les trajectoires stratégiques. Et c'est pas comme si on avait le choix entre 3 positions.

Par contre, on touche trop facilement les barrières en effet. C'est vraiment au pixel près, et c'est trop.
Par moment, on se crash alors que la barrière avait disparue de notre champ de vision...

Voilà voilà. Le jeu est sympa et le rendu "anthologie" plaisant. Bonne idée, améliore bien :)

PS. : Quelques polices type pixel : http://www.dafont.com/fr/bitmap.php

signaler à un administrateur
Commentaire de Sukei le 05/08/2008 02:23:41

92 Secondes qui dit mieu mdr ^^

signaler à un administrateur
Commentaire de raddreamer le 05/08/2008 02:45:57

92secondes ? c'est plutot lent ça non ? surtout que le compteur se déroule par frame. ça serait un bon truc tiens d'actualiser le temps en seconde non ?

Autre truc que j'ai remarqué, la consigne reste même si tu commences le jeu. Il faudrait qu'elle disparaisse après le passage des pics. on est obligé de cliquer sur OK (à la souris) alors que tout le jeu se passe au clavier :)

pour les gens qui veulent jouer à la manette avec le programme joykey ou joytokey un "appuie sur espace" serait le bienvenue :)

signaler à un administrateur
Commentaire de Girou le 11/08/2008 10:04:26

202 :o)
C'est sympa comme jeu.
Un tout petit peu minimaliste, mais j'aime le style...

OK pour jeu au clavier, mais il manque une touche (genre 'enter') pour recommencer, le click souris est vite pénible, surtout qu'on se crash souvent.

@+
Johan

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Jeux de voiture [ par Burnside ] Slt,Je cherche comment faire un double hit test pour un jeux de course de voiture. je veux un bord externe(hit test1) et un bord interne (hit test2). ou sont les friens ? [ par simonced ] Bonjour,J'essaye de créer un petit jeu de conduite vue de dessus.J'ai bien réussi à gérer l'acceleration, mais la touche pour freiner n'appelle pas ma EVENEMENT DE SYMBOLE [ par Aki75 ] Bonjour,J'ai une animation d'un carrefour avec deux feux rouges et deux voiture.Sur la scène principale, j'ai affecté au feu des changements de couleu Comment deplacer le centre de transformation par action script? [ par mathieu83 ] Bonjour!J'aimerai savoir comment deplacer le point de transformation dun clip dans action script.En fait jvoulais crée un jeu ou on dirige une voiture superposition Images GIF [ par wheshlastar ] Bonjours,Je souhaite faire une animation en Flash qui puisse permettre de configurer une voiture.Jai deja les images: des Gif transparents une pour la Moteur multi-objet pour un GTA Clone [ par papoulai ] Salut à tous.Bon je suis un nouveau venu sur Flashkod, alors je me présente tres vite fais, Cyril, 30 ans, fou de Flash...Bon, en surfant j'ai vu que un jeu de course [ par kitty75 ] BonjourJe voudrais essayer de faire un jeu de course avec un angle de vue genre Mario Kart.Est ce difficile ?P.S: Je ne fais que débuter en flash. Jeu voiture > comment délimiter le terrain de jeu ? [ par jmobylette ] Bonjour !Je suis débutant en flash mais je suis en train de créer mon premier jeu grâce plusieurs sources que je récupères partout ! Par contre il me Bougez avec les fleches [ par Devil17049 ] Bonjour,Je suis en train de créé un petit jeu de voiture et j'aimerais savoir comment faire pour déplacer la voiture grace a des fleches voila merci b Déplacement voiture, elle veut pas démarrer !! [ par mixomatoz ] Bonjour, Je suis tout nouveau et un gros tacheron en flash (comme ds bien d'autres domaines...).Je cherche a g&#233;rer le d&#233;placement d'une voit


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,858 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.