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 !

UN PETIT JEU DE PLATE FORME PAS TRÈS LONG


Information sur la source

Catégorie :Jeux Niveau : Initié Date de création : 17/11/2004 Vu / téléchargé: 5 813 / 1 373

Note :
9 / 10 - par 8 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
Un petit jeu tout simple en théorie : un personnage contrôlé avec les touches directionnelles qui doit ramasser des bonbons.

En chemin, il peut utiliser un chapeau de sorcière pour sauter plus haut. Il peut également se transformer une fois en chauve souris pour traverser le ravin...

L'intérêt serait la multiplication des niveaux.

Le code ci-dessous est celui attribué au personnage. Ca peut faire un peu peur...
 

Source

  • // déclaration des variables
  • onClipEvent (load) {
  • x = _x;
  • y = _y;
  • gravite = 0;
  • elan = 0;
  • elany = 0;
  • }
  • onClipEvent (enterFrame) {
  • if (_root.termine==0) {
  • x = _x;
  • y = _y;
  • dirKeyDown=0;
  • // mouvement droite - gauche
  • // et le cas ou rien
  • if (Key.isDown(Key.RIGHT)) {
  • _root.direction=1;
  • if ((_root.accessoire==0) and (_root.chapeau==0)) {
  • _root.tim.gotoAndStop(2); // marche à dte
  • } else if ((_root.accessoire==1) and (_root.pouf==0)) {
  • _root.tim.gotoAndStop(5); // vole à dte
  • } else if (_root.chapeau==1) {
  • _root.tim.gotoAndStop(13);
  • }
  • if (elan>-8) {
  • elan -= 2;
  • }
  • dirKeyDown=1;
  • } else if (Key.isDown(Key.LEFT)) {
  • _root.direction=0;
  • if ((_root.accessoire==0) and (_root.chapeau==0)) {
  • _root.tim.gotoAndStop(3); // marche à gche
  • } else if ((_root.accessoire==1) and (_root.pouf==0)) {
  • _root.tim.gotoAndStop(6); // vole à gche
  • } else if (_root.chapeau==1) {
  • _root.tim.gotoAndStop(14);
  • }
  • if (elan<8) {
  • elan += 2;
  • }
  • dirKeyDown=1;
  • } else if (Key.isDown(Key.SPACE)) {
  • if (_root.pouf==1) {
  • elany = -20;
  • _root.tim.gotoAndStop(9);
  • } else {
  • if (elany<0) {
  • elany += 2;
  • }
  • }
  • }
  • if (Key.isDown(Key.DOWN)) {
  • if (_root.accessoire==1) {
  • if (elany<8) {
  • elany += 2;
  • }
  • }
  • } else if (Key.isDown(Key.UP)) {
  • if (_root.accessoire==1) {
  • if (elany>-8) {
  • elany -= 2;
  • }
  • }
  • }
  • if (_y<-20) elany=10;
  • if ( ! dirKeyDown and ! Key.isDown(Key.SPACE)) {
  • if (_root.direction==1) {
  • if ((_root.accessoire==0) and (_root.chapeau==0)) {
  • _root.tim.gotoAndStop(1);
  • } else if (_root.accessoire==1) {
  • _root.tim.gotoAndStop(7);
  • } else if (_root.chapeau==1) {
  • _root.tim.gotoAndStop(12);
  • }
  • } else if (_root.direction==0) {
  • if ((_root.accessoire==0) and (_root.chapeau==0)) {
  • _root.tim.gotoAndStop(4);
  • } else if (_root.accessoire==1) {
  • _root.tim.gotoAndStop(7);
  • } else if (_root.chapeau==1) {
  • _root.tim.gotoAndStop(15);
  • }
  • }
  • if (elan<0) {
  • elan = elan+1;
  • } else if (elan>0) {
  • elan = elan-1;
  • }
  • if (elany<0) {
  • elany = elany+1;
  • } else if (elany>0) {
  • elany = elany-1;
  • }
  • }
  • _root.sol._x = _root.sol._x+elan;
  • _root.fond._x = _root.fond._x+elan/1.2;
  • _root.fond2._x = _root.fond2._x+elan/1.2;
  • _root.fond3._x = _root.fond3._x+elan/1.2;
  • _root.fond4._x = _root.fond4._x+elan/1.2;
  • _root.fond5._x = _root.fond5._x+elan/1.2;
  • _root.fond6._x = _root.fond6._x+elan/1.2;
  • _root.fond7._x = _root.fond7._x+elan/1.2;
  • _root.fond8._x = _root.fond8._x+elan/1.2;
  • _root.fond9._x = _root.fond9._x+elan/1.2;
  • _root.fond10._x = _root.fond10._x+elan/1.2;
  • _root.fond11._x = _root.fond11._x+elan/1.2;
  • _root.fond12._x = _root.fond12._x+elan/1.2;
  • _root.fond13._x = _root.fond13._x+elan/1.2;
  • _root.tim._y = _root.tim._y+elany;
  • // si le bonhomme touche le sol
  • // -> hitTest : compare les coordonnees des MC
  • // et true indique qu'on prend l'objet et pas les contours
  • if (_root.sol.hitTest(x, y, true)) {
  • if (_root.accessoire==0) {
  • gravite = 0;
  • // permet de revenir en haut de l'objet directement
  • // sauf si c'est trop haut (limite de 20 pixels ici)
  • while (_root.sol.hitTest(x, y-1, true)) {
  • y--;
  • if (y<=_y-20) {
  • if (_root.sol.hitTest(x+10, y, true)) {
  • elan=-10;
  • }
  • if (_root.sol.hitTest(x-10, y, true)) {
  • elan=10;
  • }
  • _root.sol._x -= 2*elan;
  • elan = -elan;
  • break;
  • }
  • }
  • _y=y;
  • } else if (_root.accessoire==1 && _root.sol.hitTest(x, y-1, true)) {
  • _root.chapeau=0;
  • _root.accessoire=0;
  • }
  • } else {
  • if (gravite<15) {
  • gravite = gravite+1;
  • }
  • }
  • if ( (_root.sol.hitTest(x, y+1, true)) and not (_root.sol.hitTest(x, y-1, true))) {
  • if (Key.isDown(Key.UP)) {
  • if (_root.chapeau==0) {
  • gravite = -12;
  • } else if (_root.chapeau==1) {
  • if (_y>180) {
  • gravite = -18;
  • } else gravite = -12;
  • }
  • }
  • }
  • if (_root.accessoire==0) {
  • _y = _y+gravite;
  • }
  • // retourne en haut en cas de chute
  • if (_y>500) {
  • _root.tim.gotoAndStop(11);
  • _root.txtfin._visible=1;
  • _root.termine=1;
  • _y=-120;
  • }
  • }
  • }
// déclaration des variables
onClipEvent (load) {
	x = _x;
	y = _y;
	gravite = 0;
	elan = 0;
	elany = 0;
}
onClipEvent (enterFrame) {
	if (_root.termine==0) {
		x = _x;
		y = _y;
		dirKeyDown=0;
		// mouvement droite - gauche
		// et le cas ou rien
		if (Key.isDown(Key.RIGHT)) {
			_root.direction=1;
			if ((_root.accessoire==0) and (_root.chapeau==0)) {
				_root.tim.gotoAndStop(2); // marche à dte
			} else if ((_root.accessoire==1) and (_root.pouf==0)) {
				_root.tim.gotoAndStop(5); // vole à dte
			} else if (_root.chapeau==1) {
				_root.tim.gotoAndStop(13); 
			}
			if (elan>-8) {
				elan -= 2;
			}
			dirKeyDown=1;
		} else if (Key.isDown(Key.LEFT)) {
			_root.direction=0;
			if ((_root.accessoire==0) and (_root.chapeau==0)) {
				_root.tim.gotoAndStop(3); // marche à gche
			} else if ((_root.accessoire==1) and (_root.pouf==0)) {
				_root.tim.gotoAndStop(6); // vole à gche
			} else if (_root.chapeau==1) {
				_root.tim.gotoAndStop(14);
			}
			if (elan<8) {
				elan += 2;
			}
			dirKeyDown=1;
		} else if (Key.isDown(Key.SPACE)) {
			if (_root.pouf==1) {
				elany = -20;
				_root.tim.gotoAndStop(9);
			} else { 
				if (elany<0) {
					elany += 2;
				}
			}
		}

		if (Key.isDown(Key.DOWN)) {
			if (_root.accessoire==1) { 
				if (elany<8) {
					elany += 2;
				}
			}
		} else if (Key.isDown(Key.UP)) {
			if (_root.accessoire==1) {
				if (elany>-8) {
					elany -= 2;		
				}
			}
		}
		if (_y<-20) elany=10;
		if ( ! dirKeyDown and ! Key.isDown(Key.SPACE)) {
			if (_root.direction==1) {
				if ((_root.accessoire==0) and (_root.chapeau==0)) {
					_root.tim.gotoAndStop(1);
				} else if (_root.accessoire==1) {
					_root.tim.gotoAndStop(7);
				} else if (_root.chapeau==1) {
					_root.tim.gotoAndStop(12);
				}
			} else if (_root.direction==0) {
				if ((_root.accessoire==0) and (_root.chapeau==0)) {
					_root.tim.gotoAndStop(4);
				} else if (_root.accessoire==1) {
					_root.tim.gotoAndStop(7);
				} else if (_root.chapeau==1) {
					_root.tim.gotoAndStop(15);
				}
			}
			if (elan<0) {
				elan = elan+1;
			} else if (elan>0) {
				elan = elan-1;
			}
			if (elany<0) {
				elany = elany+1;
			} else if (elany>0) {
				elany = elany-1;
			}
		}

		_root.sol._x = _root.sol._x+elan;
		_root.fond._x = _root.fond._x+elan/1.2;
		_root.fond2._x = _root.fond2._x+elan/1.2;
		_root.fond3._x = _root.fond3._x+elan/1.2;
		_root.fond4._x = _root.fond4._x+elan/1.2;
		_root.fond5._x = _root.fond5._x+elan/1.2;
		_root.fond6._x = _root.fond6._x+elan/1.2;
		_root.fond7._x = _root.fond7._x+elan/1.2;
		_root.fond8._x = _root.fond8._x+elan/1.2;
		_root.fond9._x = _root.fond9._x+elan/1.2;
		_root.fond10._x = _root.fond10._x+elan/1.2;
		_root.fond11._x = _root.fond11._x+elan/1.2;
		_root.fond12._x = _root.fond12._x+elan/1.2;
		_root.fond13._x = _root.fond13._x+elan/1.2;
		_root.tim._y = _root.tim._y+elany;

		// si le bonhomme touche le sol
		// -> hitTest : compare les coordonnees des MC
		// et true indique qu'on prend l'objet et pas les contours
		if (_root.sol.hitTest(x, y, true)) {
			if (_root.accessoire==0) {
				gravite = 0;
				// permet de revenir en haut de l'objet directement
				// sauf si c'est trop haut (limite de 20 pixels ici)
				while (_root.sol.hitTest(x, y-1, true)) {
					y--;
					if (y<=_y-20) {
						if (_root.sol.hitTest(x+10, y, true)) {
							elan=-10;
						}
						if (_root.sol.hitTest(x-10, y, true)) {
							elan=10;
						}
						_root.sol._x -= 2*elan;
						elan = -elan;
						break;
					}
				}
				_y=y;
			} else if (_root.accessoire==1 && _root.sol.hitTest(x, y-1, true)) {
				_root.chapeau=0;
				_root.accessoire=0;
			}
		} else {
			if (gravite<15) {
				gravite = gravite+1;
			}
		}
		if ( (_root.sol.hitTest(x, y+1, true)) and not (_root.sol.hitTest(x, y-1, true))) {
			if (Key.isDown(Key.UP)) {
				if (_root.chapeau==0) {
					gravite = -12;
				} else if (_root.chapeau==1) {
					if (_y>180) {
						gravite = -18;
					} else gravite = -12;
				}
			}
		}
		if (_root.accessoire==0) {
			_y = _y+gravite;
		}
		// retourne en haut en cas de chute
		if (_y>500) {
			_root.tim.gotoAndStop(11);
			_root.txtfin._visible=1;
			_root.termine=1;
			_y=-120;
		}
	}
}

Conclusion

Aucune mise à jour prévue.

Mais si vous voulez me contacter, c'est à cette adresse :
ouebmaster@coucoucircus.org

Mon site Internet : http://www.coucoucircus.org
 

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 !
  • halloween.flaTélécharger ce fichier [Réservé aux membres club]667 648 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de pegase31 le 17/11/2004 23:11:07 administrateur CS

Le soucis de ton type de jeu, c'est que les niveaux ne sont pas modulables, c'est à dire que n'importe qui ne peut pas créer de niveaux sans toucher entièrement au code.

Sinon c'est sympa

signaler à un administrateur
Commentaire de Mafassure le 18/11/2004 17:19:02 administrateur CS

ça aussi c'est très très bien fait...je commente à la volé (j'ai lu le code vite fait je suis en sevrage)

signaler à un administrateur
Commentaire de Blacknight91titi le 22/11/2004 09:02:03

super :-)
mais ccomme l'a di pegase31 on ne peu pa modifie la map
mais enfin bon boulot quand même

signaler à un administrateur
Commentaire de coucoucircus le 03/12/2004 09:56:10

Pour ce qui est des maps, Il y a moyen de les faire évoluer relativement facilement. Pour celle-ci, j'ai tracé le terrain dans illustrator et importé dans flash. Comme il ne s'agit que de hitTest, il n'y a quasiment rien à modifier dans le code.

Le seul truc, c'est qu'en fonction de la position en _y du personnage, il saute plus ou moins haut quand il a le chapeau, par exemple. Ca doit pas être sorcier à retravailler.

Si on s'attaque à la gestion en hauteur de la caméra, il y a moyen de proposer des niveaux très différents.

Par contre, ce sont les éléments mobiles qui seraient effectivement les plus longs à modifier.

signaler à un administrateur
Commentaire de bloom1 le 30/12/2004 03:35:31

COOL!!! J'ai joué pendant au moins 15 minutes puis je suis mort pleins de fois... En tout cas, si tu as msn messenger, voici mon e-mail : coolsalex666@hotmail.com
J'ai besoins d'aide, c'est pour ca.
Merci!
coordinalement, amicalement... Même si je ne te connais pas. lol

signaler à un administrateur
Commentaire de FoxNuage le 04/12/2005 14:32:14

Bonjour,

J’ai un projet de faire un petit jeu en flash H /L 500X300
Il s’agit d’un jeu pour jeune pour aller sur un site d’élevage virtuel
Donc le jeu n’a pas une obligation de perfection simplement  avoir un graphique 2D fun style dessin animé et que les animations se tiennes

Le jeux consiste à … faire avancer le cheval le faire sauté pour lui faire manger des pommes qui lui donnera des points, ses point devront être convertie en valeurs PHP a la fin du jeux
Une petite explication … il y aura un total de 200 points a accumulé, il faudra donc répartir les points en un nombre limité de pomme. Les 50 premiers point devront être facile a amassé,
Les 50 autres, plus difficiles et ainsi de suite jusqu a très très difficile pour les 50 derniers.  
Pour aider la difficulté  il y aura un compte a rebours. Une fois le temps écoulé le jeux  se termine (Le but est de faire en sorte que le joueur ne réussisse pas a attrapé toutes les pommes)

Les obstacles… des bottes de paille sur les quels il devra sauté, des tronc d’arbres…
Il se pourrais que j’arrive a fournir les images 2D mais au cas Si vous êtes ou flasheur, illustrateur flasheur ou illustrateur

  
Il y aura des possibilités par la suite pour  d’autres contrats

Merci de votre collaboration !!!
mon msn mely_dacari@hotmail.com

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

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,156 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é.