Déplacement d'un ennemi pour un jeu de combat

vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 26 nov. 2008 à 13:55
KilikWei Messages postés 40 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 24 avril 2009 - 24 avril 2009 à 22:44
Coucou... alors voilà je voudrais faire un jeu de combat genre street fighter...
dans le clip de mon perso principal j'ai mis ça :

onClipEvent(load){saut = 0;this.gotoAndStop(1);}
onClipEvent(enterFrame){horizontalspeed=0;friction=0.60;speed=4;speed2=10;
    //Marcher vers la droite     70=F
if(Key.isDown(70)){_xscale = 100;horizontalspeed+=speed;this.gotoAndStop(2);}
    //Courir vers la droite        71=G
if(Key.isDown(71)){_xscale = 100;horizontalspeed+=speed2;this.gotoAndStop(3);}
    //Marcher vers la gauche    83=S
if(Key.isDown(83)){_xscale = -100;horizontalspeed-=speed;this.gotoAndStop(2);}
    //Courir vers la gauche        81=Q
if(Key.isDown(81)){_xscale = -100;horizontalspeed-=speed2;this.gotoAndStop(3);}
    //Gestion de la friction sur le sol
this._x+=horizontalspeed;horizontalspeed*=friction;
    //S'accroupir                68=C
if(Key.isDown(68)){this.gotoAndStop(4);}
    //pour que le saut ne puisse pas dépasser 25
if(saut < -30){saut = -30;}
    //pour qu'il retombe s'il n'est pas sur le sol
_y -= saut
    //pour qu'il bloque sur les plateformes
if(hitTest(_root.pl1)){_y = _root.pl1._y}
    //pour qu'il ne puisse sauter que kan il touche le sol
if(hitTest(_root.pl1)){if(Key.isDown(69)){saut = 30;this.gotoAndStop(5);}}
    //bloké à droite
if(_x>915){_x =915}
    //bloké à gauche
if(_x<35){_x =35}
    //pour qu'il tombe s'il ne touche pas le sol
saut -= 1.7
}
    //On revient à l'anim' "statique"
onClipEvent (keyUp) {this.gotoAndStop(1);}
    //LES COUPS !!! 8D
onClipEvent (keyDown) {
    //COUP DE POIND (K)
if(Key.isDown(75)){this.gotoAndStop(6);}
    //COUP DE PIED (M)
if(Key.isDown(77)){this.gotoAndStop(7);}
    //SPHERE ENERGIE (B) et (N)
if(Key.isDown(66) and Key.isDown(78)){this._parent.zesphere._y=230;this.gotoAndStop(8);}
}

Ca marche tip top... à part pour le saut, il faut que je prépare des anims qui "font bien" :D

Et pour l'ennemi, j'aimerais savoir comme procéder... pour l'instant ce n'est qu'un bloc rouge. avec ça dedans :
onClipEvent (enterFrame) {
    currentlocx = this._x;
    differencex = _root.bouffonx-currentlocx;
    accelx = differencex/5;
    this._x = this._x+accelx;
}
et en extérieur, ce q ue j'appelerais un "timer" genre VB. un clip avec plusieurs frames contenant chacunes, ceci :
_root.bouffonx =Math.random()*800;
800 étant la largeur maxi du terrain.

Voilà ma question finale donc :
Comment faire en sorte que le perso bouge de façon "sensée" sur la map... et "agisse" à l'encontre du perso principal, le joueur quoi...?

Là pour l'instant, il se déplace à la vitesse de la lumière hihihi, de droite à gauche tu n'as pas le temps de le chopper, grrr... j'ai merais un type de gestion plus... "logique"... les sources sur le sujet ne sont pas légion ont dirait, c surtout du jeu en vue de dessus ou avec un terrain qui défilent et les ennemi bouge de gauche à droite dans un périmètre donné ou alors je sont pas beaucoup agressifs...
Et comme je me doute qu'il faut une sorte d'ia, c'est l'horreur...

Un conseil ou un site pitète?...
Merci de votre avis.

18 réponses

raddreamer Messages postés 170 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 22 décembre 2010
27 nov. 2008 à 11:38
Je vois que t'as pas abandonné le jeu cool,
Gérer l'IA de ton ennemi ça va pas être facile, surtout pour un jeu de baston, selon le niveau de difficulté va falloir que tu lui crée des comportements, des enchainements de coups, bon courrage (enfin ça des bouquins sur les IA ça doit exister).

Je saurai pas trop quoi te conseiller pour ton ennemi mais déjà insérer dans ton player et ton ennemi une commande qui fait que lorsqu'ils ne sautent pas, ils se fassent face l'un à l'autre. Ensuite que les 2 sprites ne puissent pas s'inter-pénétrer dans une certains limite (faut bien qu'ils se castagnent quand même) faudrait que tu établisses un noyau dur (le tronc de ton perso) et une zone tampon (la zone du pied ou du poing quand ils frappent)
Là où ça risque de coincer c'est quand ton ennemi t'accule dans l'angle et saute sur toi. faut prévoir un truc du genre "quand le bord arrière de sprite1 est tout prêt d'une limite de l'écran, sprite 2qui est en position saut et avec bord avant à la limite de l'écran glisse quand il retombe pour atteindre une position collée au sprite"

Pour ton déplacement, faudrait :
1 - que tu lui définisses une vitesse de déplacement définie en marche
2 - que tu définisses une temporalité à ton ennemi
3 - que ton point à atteindre soit un entier
4 - que tu mettes une marge d'erreur à l'approche (ton perso va surement se déplacer et dépasser et revenir sans cesse sur ton point)
là avec ton onenterframe :
il redéfini tout le temps une vitesse en fonction de déplacement, (loin= rapide) (proche=lent), un perso de jeu ça marche ou ça court, à moins que tu veuilles faire une simulation d'appontage ^^;
ton ennemi là tant qu'il est du côté droit ça peut marcher ton code mais quand il se trouve à la gauche de son objectif ?

faudrait que je continue mon début de beat'em all mais là c'est l'as3 en priorité !
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
27 nov. 2008 à 12:41
Merci de ta réponse, en fait je crois que je vais commencer par dupliquer les frames de mon perso principal, sur celui de l'ennemi, et faire en sorte qu'ils se fassent face. Ensuite pour le côté "ennemi qui balance les bons mouvements au bon moment... je verrais, je cherche de la doc sur le net...

Ben enfait les jeu de combat j'en ai pas trouvé à par sengoku sur ce meme site mais le code eset un peu chelou pour moi.... je préfère repartir de zéro en qqsorte... histoire d'y voir un peu  plus clair que du copier coller rectifier... enfin, dans le cadre de mes capacités.
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
27 nov. 2008 à 14:43
J4a fini par trouvé ça :
http://www.flashkit.com/movies/Games/Full_Game_Source/Fighting-Superdea-12231/index.php
mais j'arrive pas à l'ouvrir, mon flash8 ne doit pas "trop vieux"... Grrrr
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
1 déc. 2008 à 12:32
bona lors j'ai réussi a zieuter le fichier, mon "ennemi" maintenant suis le perso principal, se retourne kan le perso principal passe derrière, il charge un clip kan on le cogne, un autre kan il est mort, et un autre kan il avance. kan il y a contact avec le perso principal, celui-ci perd des points de vie... c loin d'être fini mais je suis pas mécontent de la tournure que ça prend... restera a faire les dessins "en conséquence" :)
J'ai rajouté des pak de vie au cas où la barre de vie du perso principal déclinerait trop vite !!!!...
voilà...
Ca avance, ça avance...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
raddreamer Messages postés 170 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 22 décembre 2010
1 déc. 2008 à 13:32
Je vois que ça avance, par contre dommage que tu commences à faire ça en as2 :(
Mon premier jeu pareil j'ai fait en as2, là maintenant que je commence l'as3 je galère grave pour la construction par contre ça va être un plaisir une fois les outils développés :)

Sur le fichier qui te sert de modèle, une fausse note assez grosse : les persos n'ont pas de substance, ils peuvent se rentrer dedans pas bon ça ^^

Enfin tu vas apprendre quelques bons trucs certainement même si tu restes en AS2 (tu auras juste plus mal au cul au passage en as3 après) ^^;

Bonne chace
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
1 déc. 2008 à 14:09
Miciiii... Ah, pour le côté "on se rentre dedans", c bon : le perso ennemi qui "me suit" se stop kan il est proche genre d'un ou deux pixels...
Sinon ben vi c de l'AS2, j'ai que flash8 là. Cela dit je ne veux pas non plus faire 3000 jeux, là c un délire que je veux réaliser :)
y'a aussi un truc marrant qui se passe une fois que tua s battu ton adversaire, j'ai fait le bloc "ennemi", à l'horizontal... kan tu marche, le "cadavre" te suit en glissant, mdr !!! enfin je te tiens au courant :) !! au fait, j'ai vu ton jeu il est super sympa :
http://www.flashkod.com/codes/YOUKAI-TAISEN-GRANDE-GUERRE-MONSTRES_47839.aspx

tu as mis longtemps à faire ça???
0
raddreamer Messages postés 170 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 22 décembre 2010
1 déc. 2008 à 16:11
Un mois et demi pour le jeu enfin, temps passé surtout sur les sprites. D'où le nombre de bugs pas possible (blocage du jeu lors de l'apparition du boss, scoll d'upgrade qui change pas de couleurs). J'ai du boulo en somme :)
là je lui fais un lifting graphique et une refonte en AS3 (y a pas à dire ça gère mieux le plein d'ennemis et les scrolls rapides de décor).
Je pourrais ajouter les niveaux suivants une fois que je maitriserai mieux la bête ^^;
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
1 déc. 2008 à 16:27
Mon jeu a moi sera plus simple...
un écran d'accueil
un écran de choix du perso
un écran de choix de la map (décors)
et GO  8)
Une fois le combat fini on peut "rejouer" et on est renvoyé à l'écran de choix du perso.
Point... là où je m'éclaterais au niveau graphique, ce sera dans les options,a vec choix des habits.
Et aussi dans les "persos cachés", "décors cachés"...
Sinon tant que les perso se donnent des coups et que la jauge de vie en pati, "proportionnellement" et que ça fait "style"... ça me va...
Hm... oserais te passer mon fla pour que tu le zieute un peu?j'arrive pas bien à gérer le :
ennemi qui frappe
ennemi qui fait "ouille"
le côté "hittest" j'arrive pas trop à le gérer en fait...
0
raddreamer Messages postés 170 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 22 décembre 2010
2 déc. 2008 à 16:03
Le plus important c'est de bien cibler ton projet, histoire de pas avoir à te retaper tout le code par la suite
Pour ton problème de cadavre qui suit ton personnage très simple :
mets en condition qu'il faut qu'il soit vivant (hp >0) pour bouger ;)
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
2 déc. 2008 à 19:36
ben je me demande en fait, c marrant de voir le cadavre te suivre mdr. ok je vais essayer ça.
Bonne soirée !!!!!
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
10 déc. 2008 à 12:31
le code que j'utilise ne comporte pas beaucoup de ligne... hm... mais je galère un peu... snif. pour le  hp >0 ça marche pas, il faut le mettre "à quel moment en fait?..." la jauge est une anime déroulée i mage par imge au fur et a mesure des coups. arrivé aub out de l'anim, c là que j'ai mis le truc mais ça n' pas l'air de bouger...
0
KilikWei Messages postés 40 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 24 avril 2009
4 févr. 2009 à 16:47
Moi aussi j essaye de faire un jeu de combat mais je n'ai pas le temps de mon occuper en ce moment =P ; de plus j aurai poster mon jeu de combat sur codes-sources mais vu qu il est pas fini u_u.
http://cyberquebec.ca/eroge/page.html
Sinon bonne chance et bon courage =)
0
KilikWei Messages postés 40 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 16:37
Bon j'ai fini mon jeu de fighting2D , mais bon c pas un resultat top top^^"
http://rikai.u7n.org/galge/game.htm
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
24 avril 2009 à 22:08
Il a l'air super ton jeu KilikWei, bravo... c bien mieux que la mienne, que j'ai du stopper (taf oblige). snif... tu penses que tu posteras les sources bientôt? je t'avoue que j'aimerais bien m'en inspirer pour en refaire un et partir d'une base solide... avec le mien je tatonnais... :/
0
KilikWei Messages postés 40 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 22:16
Ben c'est pas que ça me derange mais la question ce pose meme pas envoyer 12mo c'est pas tres possible^^"
Mais si tu as des question pour faire ton jeu de combat je ferai de mon mieux pour t'aider^^
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
24 avril 2009 à 22:26
bigre, douze mo, le trucde ouf, hihihi... ben... je ne sai s plus trop où j'en étais en plus j'ai eu un crash de disque je crois que j'ai tout paumé mdr... hm...
j'avais fait ensorte que la jauge baisse kan on était frappé... mais kan l'ennemi est mort, il tombe à terre, mais il continue kan meme à te pousuivre, ça fait genre un fantome, j'étais mdr je me rappele. :D
en tout cas merci de m'offrir ton aide...
En fait ce serait le truc de base.
2 perso. 2 jauge, et un ennemi qui avance et bouge "intelligement", pour ma part, il bougeait sans cesse et ne portais pas de coups..; jsute les points de vie baissaient quand il me touchait...
J'aimerais refaire le truc du mode arcade de ton jeu en fait, j'ai pris ken, c'était génial et c bien géré comme truc... !!!!!
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
24 avril 2009 à 22:28
Dsl mais l'heure est tardive pour moi je vais me coucher waza à pluuuuuuuuuuuuuuuuuuuch' !!!
0
KilikWei Messages postés 40 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 22:44
Ben merci^^ et sa fait plaisir que tu apprécie mon jeu^^
Je sais que mon code "Sengoku" est chelou et celui de mon jeu de combat l'est encore plus u_u,mon jeu de combat par rapport a Sengoku possede juste plus de variable et de fonction booleenes, pour IA perso je suis un vrai nul =D , L'ennemi frappe au pif (avec la fonction random je crois). oui parce que ça fait a peu pres 1 mois que j'ai fini mon jeu ^^" donc je m'en souviens plus trop^^"
0
Rejoignez-nous