Kb klik ball

Description

Un jeux d'arcade, avec un concept simple :

Cliquer sur une balle la fait monter si elle descendait.

Chaque balle qui touche le sol t'enlève une de tes 5 vies.

Lorsqu'une balle touche le bord droit du jeu, tu gagne un point et elle s'immobilise.

Il faut faire un max de points avec tes 5 vies.

Source / Exemple :


Image 1 : Intro
// on arrete la lecture
stop();
// on passe à l'image suivante après un clic du joueur
onMouseUp = function () {
	play();
};

Image 2 : Le jeux
// stop car il y a plusieurs image dans le scénario
stop();
//
// dans l'image précédente du scénario, un clique
//engendre la lecture du scenario, donc on annule l'effet de cet evenement
onMouseUp = null;
//
// Initialisation des tableaux qui contiendrons les infos sur chaque balle
// la position de la balle en x
var px:Array = new Array();
// la position de la balle en y
var py:Array = new Array();
// l'inertie, ou le vecteur vitesse de la balle en x
var ix:Array = new Array();
// l'inertie, ou le vecteur vitesse de la balle en y
var iy:Array = new Array();
// l'angle de rotation de la balle
var pr:Array = new Array();
// l'inertie en rotation de la balle
var ir:Array = new Array();
//
// variable pour a création des balles
// une variable incrémentée à chaque image de l'animation. Si elle 
// atteint delaymax, on l'initialise et on créé une balle
delay = 0;
// le nombre d'image entre la création des balles
delaymax = 50;
//
// Le nombre de vies utilisée
dies = 0;
//
// Le score du joueur
score = 0;
//
// Ce qui suit est exécuté à chaque image de l'animation
_root.onEnterFrame = function() {
	// Si on a plus de vies, aller à l'image suivante dans le scénario, c'est
	// à dire le GAME OVER
	if (dies>4) {
		_root.play();
	}
	// Incrémente le delai avant la prochaine creation d'une balle
	delay++;
	// création d'une balle
	if (delay>delaymax) {
		// La prochaine balle sera crée plus tôt
		delaymax--;
		// initialise le delai avant la prochaine création de balle
		delay = 0;
		//
		// initialise la position de la balle créé en fonction de la position 
		//du movie clip b0.
		px[px.length] = b0._x;
		py[px.length-1] = b0._y;
		//
		// initialisation de l'inertie de la balle
		// elle part vers la droite
		ix[px.length-1] = Math.random()*3+3;
		// le plus souvent, elle monte, 
		//mais il lui arrive de descendre
		iy[px.length-1] = Math.random()*5-1;
		//
		// initialisation de la rotation de la balle et de son inertie en rotation.
		pr[px.length-1] = Math.random()*360;
		ir[px.length-1] = 2;
	}
	//
	// gestion de chaque balle l'une aprés l'autre
	for (a=0; a<px.length; a++) {
		// si la balle ne touchait pas le sol ni n'était collée à droite à l'image précédente
		// de l'animation
		if (py[a]<250 && px[a]<600) {
			// apliquer le vecteur vitesse à la position et à la rotation de la balle
			px[a] += ix[a];
			py[a] += iy[a];
			pr[a] += ir[a];
			// modérer progressivement la rotation
			ir[a] *= 0.9;
			// gravité qui tend à faire tomber la balle
			iy[a] += 0.1;
			// afficher une balle à l'écran sous forme d'un movie clip 
			//(attention à la profondeur qui sert après)
			ref = _root.attachMovie("ball", a.toString(), a);
			// positioner l'image de la balle
			ref._x = px[a];
			ref._y = py[a];
			// tourner l'image de la balle
			ref._rotation = pr[a];
			// apliquer un événement lorsqu'on clique sur la balle
			ref.onPress = function() {
				// inverser l'inertie verticalle de la balle
				// this.getDepth() nous donne le numéro de la balle 
				//(voire la fonction créent le mc plus haut)
				iy[this.getDepth()] *= -1;
				// faire tourner un peu la balle
				ir[this.getDepth()] += 20;
			};
			// fin du onPress
			// si la balle touche le sol
			if (py[a]>250) {
				// enlever une vie
				dies++;
				// placer la balle sur l'image grisée en bas
				ref._x = dies*50;
				ref._y = 275;
			}
			// si la balle est à droite après les déplacements
			if (px[a]>=600) {
				score++;
				// fin de la condition "Si la balle, après déplacement, est à droite"
			}
			// fin de la condition "balle en position normale"
		}
		// fin de la gestion de chaque balle une par une
	}
	// fin du code éxécuté 30 fois par seconde
};

Image 3 : GAME OVER
stop();
_root.onEnterFrame = null;
for (a=0; a<px.length; a++) {
	_root.createEmptyMovieClip(a.toString(), a);
}
_root.bts.onRelease = function() {
	_root.gotoAndStop(1);
};

Conclusion :


Personnellement ce jeux me plait, donc je vous conseille de l'essayer.

De plus, vous pouvez trouver d'autres jeux de moi à cette adresse : http://daddy11world.free.fr

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.