begin process at 2010 03 18 14:56:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > KB KLIK BALL

KB KLIK BALL


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :Concours Flash, arcade, balles, adresse, souris Niveau :Débutant Date de création :28/06/2008 Date de mise à jour :28/06/2008 04:09:57 Vu / téléchargé :3 886 / 168

Auteur : daddy11world

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

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


 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 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 SPACEDIVIDE : PROTÈGE LA TERRE D'UN ÉNORME ASTÉROÏDE
Source avec Zip Source avec une capture NUIT ETOILÉE EN 3D
Source avec Zip Source avec une capture DANGEROUS RACE

 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 SPACEDIVIDE : PROTÈGE LA TERRE D'UN ÉNORME ASTÉROÏDE par daddy11world

Commentaires et avis

Commentaire de Mansuz le 29/06/2008 09:52:06

Le principe de ton jeu est sympas. ;) Mais c'est vite lassant.

"# // Initialisation des tableaux qui contiendrons les infos sur chaque balle"
"# // la position de la balle en x"

J'en suis arrivé moi aussi à l'utilisation de Array pour gérer les variables pour chaque element. En as2 il était possible de mettre une variable identique sur sur chaque clip (c'était, je trouve, plus simple à gérer).

Je suis persuadé qu'il y a mieux que d'utiliser des Array. Mais si l'on code au sein de la timeline c'est pas dit que l'on puisse faire autrement...

Commentaire de daddy11world le 29/06/2008 10:50:37

En fait la j'aurais pu mettre le code dans les mc de balles, sauf que je ne savais pas comment modifier les variables globales comme le score ou les vies avec un code à l'interieur d'un mc.b

Commentaire de Mansuz le 29/06/2008 12:19:39

Moi aussi je rencontre des problème de se genre :(

En fait je t'es posé cette question car j'aimerais déclarer des variables proprement dans mes différents éléments. Tout en sachant que je code dans la timeline.

for(var i:int=0;i<5;i++){
var mon_ours: Ours = new Ours();
mon_ours.vie=100;
addChild(mon_ours);
getChildAt(numChildren-1).x=i*50;
}

Je créer 5 ours, comment placer une variable vie sur chacun des mes ours? En AS2 c'est simple comme bonjour, mais je dois dire qu'en AS3 je sèche! :(

Commentaire de daddy11world le 30/06/2008 08:15:48

perso j'ai mx 2004 donc sa doit etre du as 2 ... mais je ne sais pas comment on assigne des variable à un movie clip

Commentaire de Mansuz le 01/07/2008 17:09:35

J'avais pas vu que tu codé en AS2. ^^ Moi qui t'embête avec des questions AS3. :)

En as2 tu peux mettre des variables sur un clip, en faisant:
for(i=0;i<10;i++){
this["clip"+i].vitesse=5;
}
Sur clip0, clip1, clip2.... tu créer une variable vitesse, qui est indépendante pour chaque clip.  

Commentaire de dj_ouf le 09/07/2008 16:46:06

Salut,

C'est très bien avec des tableaux! Car tu as l'avantage de pouvoir contrôler le nombre d'instances présentes, les supprimer, pour éventuellement les faire interagir ect... au lieu de boucler tous les enfants de la DisplayList, où tu récupères tous les objets dérivants de la classe DisplayObject...

En AS3, il y a toujours la possiblité d'utiliser la fonction getDefinitionByName(...) as MovieClip;

Commentaire de Mansuz le 09/07/2008 19:34:52

Avec la POO et en bossant sur des classes graphiques (liée à des clips) il est possible de faire de jolies choses... il est possible d'éviter de faire des arrays. Je pense qui ça amène très vite une certaine confusion. :(

Commentaire de daddy11world le 09/07/2008 20:25:46

Depuis que je programme j'utilise les array ... ça fait parti de mes petites abitudes ^^

Commentaire de Mansuz le 09/07/2008 20:34:32

Après tout c'est une solution comme une autre. :)

Commentaire de dj_ouf le 11/07/2008 12:17:32

oui...

"classes graphiques (liée à des clips)" -> c'est vraiment sympa c'est nouveauté en effet.

Après pour les tableaux, c'est juste un principe de collection d'objets dans ce cas là...il faut voir quel méthodologie devrait s'employer en fonction du contexte d'application.
Il y a divers possibilités, mais l'expérience a abouti sur des design pattern qu'il est recommandé de s'appuyer pour s'éviter des problèmes de conception lontemps résolus. (cf patterns observers, ect..)

Commentaire de daddy11world le 27/07/2008 23:07:46

Et sinon d'autres remarques sur le jeu ?

Commentaire de lucky10g le 30/07/2008 21:45:50

J'aime bien le principe :) Il pourrait etre amélioré niveau graphisme mais j'aime bien :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 Urgentissime validité d'1 mail [ par ihen ] bonjour à toutes et à tous !!Voila g un prblm MEGA URGENT pour ce matin, qui concerne le controle de validité d'un mail.En effet, g un formulaire ave 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 Verif LoadMovie [ par agau123 ] Bonjour,comment vérifier que l'url du loadmovie est bonne.Explication :Mon swf principal appelle un fichier sur l'adresse http://monsite.fr/intro.swf.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

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

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