Jeu de plateforme > saut de personnage

Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 - 20 avril 2006 à 12:04
cs_Bonaparte Messages postés 68 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 20 février 2009 - 27 avril 2006 à 17:42
Salut,

J'ai décidé de créer un petit jeu de plateforme en Flash mais je ne suis pas encore un génie en ActionScript, loin de là, donc j'aimerais commencer par vous demander un petit conseil concret. Cela dit, pour éviter de vous déranger chaque fois que j'ai ce genre de problème, si vous avez des conseils à me proposer, je suis preneur. Je cherche éventuellement des tutoriaux ou des bouquins sur la programmation de jeux en Flash.

Bon, voilà mon problème actuel:

J'ai un personnage-héro centré sur mon écran. Lorsqu'il se déplace, le clip du perso reste au centre et c'est le décors qui bouge (logique). J'ai donc écris mes commandes de déplacement:

onEnterFrame = function () {
if (Key.isDown(Key.UP)) {
decors_mc._y += 5;
}
if (Key.isDown(Key.DOWN)) {
decors_mc._y -= 5;
}
if (Key.isDown(Key.LEFT)) {
decors_mc._x += 5;
}
if (Key.isDown(Key.RIGHT)) {
decors_mc._x -= 5;
}
}


A présent, j'aimerais faire sauter mon perso. Là, ça se complique! Pour simuler le saut de mon perso, c'est encore le décors que je vais faire bouger bien que si je voulais, je pourrais faire bouger le clip de mon perso, c'est une question de choix.

Bon, j'aimerais donc qu'en appuyant sur la touche espace, mon perso saute. Je vais donc devoir faire bouger mon décors vers le bas mais j'ai besoin que l'élan du saut ralentisse jusqu'à atteindre un point y donné.

Voilà ce que j'ai écris mais ça ne fonctionne pas, j'ai du mal à trouver la combinaison adéquate:

onEnterFrame = function () {
if (Key.isDown(Key.UP)) {
decors_mc._y += 5;
}
if (Key.isDown(Key.DOWN)) {
decors_mc._y -= 5;
}
if (Key.isDown(Key.LEFT)) {
decors_mc._x += 5;
}
if (Key.isDown(Key.RIGHT)) {
decors_mc._x -= 5;
}
pointSaut = decors_mc._y-8;
if (Key.isDown(Key.SPACE)) {
decors_mc._y += (pointSaut-decors_mc._y)/6;
}
};

En fait, je voudrais prendre un point de référence se situant à decors_mc._y-8 , et dire ensuite à décors_mc d'aller vers ce point tout en décélérant mais là, ça ne marche pas!

Si quelqu'un sait me dire comment faire, ce serait super!

D'avance, merci! ;-)

3 réponses

cs_Bonaparte Messages postés 68 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 20 février 2009
25 avril 2006 à 22:47
Pour faire un jeu de plateforme, la meilleure de toute les sources est celle-ci:
http://www.flashkod.com/codes/MOTEUR-POUR-JEU-PLATEFORME-AVEC-SCROLLING_13561.aspx

le code est assez simple et tu peux rajouter sa pour que il y ait une collision avec les plafonds (sans quoi il rentre dans la matiere):

if (_root.sol.hitTest(_x, getBounds(_root).yMin, true)) {
_y += 2;
gravite = 0;
}

ton code est pas mal pour faire des jeux comme des labyrinthe:
http://www.flashkod.com/codes/CODE-JEUX-LABYRINTHE_34909.aspx

Sinon, je connais un boucin vraiment bien qui s'appelle "10 jeux flash".

A+
0
Gizmil Messages postés 706 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 3 octobre 2022 1
26 avril 2006 à 20:27
Merci pour l'info, c'es sympa! (-;

Oui, j'avais repéré ce bouquin-là sur le web! Est-ce qu'on y parle des jeux de plateforme?
0
cs_Bonaparte Messages postés 68 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 20 février 2009
27 avril 2006 à 17:42
bien pas vraiment en faite...
il parle beaucoup des collisions, du lancage d'une fusée lors d'un jeu etc... mais y'a pas de jeu de platteform. c pourquoi il faut se servir de http://www.flashkod.com/codes/MOTEUR-POUR-JEU-PLATEFORME-AVEC-SCROLLING_13561.aspx.

A+
0
Rejoignez-nous