Accueil Articles Tutoriels Forums
GameCorp Index du Forum -> Autres logiciels de création -> [MMF] Création Dynamique d'objets
Auteur
Message
Boud Message luPosté le : 11 Nov 2008 17:04
Avatar de Boud
Explorateur

Inscrit le : 23 Mai 2008
Messages : 16
GCPoints : 8.9
Game Design - Level Design


Bonjour amis spécialistes de MMF, bossant actuellement sur un petit projet sur ce merveilleux logiciel et renouant avec mes amours premiers de l'époque Klick & Play, je fut néanmoins confronté à un problème assez rebutant.

Je vous explique grosso-modo le contexte :

Le personnage joueur est amené à effectuer des attaques au corps à corps (coup de poing) lorsque les ennemis sont à proximité. Cependant pour que ça soit un minimum "réaliste", l'ennemi ne doit être touché par ce coup de poing que dans des zones bien précises (son buste et sa tête principalement). Afin de "modéliser" cela, j'associe à chaque ennemi une "zone de contact" invisible qui le suit en tout temps et tout heure. Le hic c'est que j'ai voulu créer ces zones dynamiquement et ne pas avoir à les associer à chaque ennemi individuellement. Donc j'ai crée un "type" d'ennemi et sa zone associé et j'ai naivement essayé de dupliquer l'ennemi. Il y a bien création de plusieurs zones de contact, cependant elles agissent comme s'il s'agissait du même objet, du coup frapper un ennemi, affecte tous les autres ...

J'ai peut être mal appréhendé la création dynamique d'objets, est ce qu'ils ont tous le même "ID" et son considérés comme un même objet par le système d'événements ?
Image
eagle4 Message luPosté le : 11 Nov 2008 17:29
Avatar de eagle4
Explorateur

Inscrit le : 07 Fév 2008
Messages : 103
GCPoints : 326.2
Programmation - Artworking


La création d'objet dynamique peut être très utile. Cependant il faut que les objets qui soient créés aient un comportement identique. En effet si tu dis par exemple :

Toujours
-> Fixe l'objet zone à la position de l'objet ennemi

Alors MMF2 ne va pas savoir quel objet zone va avec quel ennemi. Donc par défaut il va agir sur tout les objet zone et les envoyer sur le premier ennemi qu'il va trouver (en général le dernier créé)

Si tu veut avoir un meilleur contrôle, alors tu dois créer une fastloop qui va parcourir tout les identifiants de tes objets zones puis de tes objets ennemis, et les attribuer intelligemment.

Mais cela nécessite une maitrise déjà plus avancé de MMF.

Pour ton simple problème, je te conseil un changement de méthode. Pourquoi ne pas simplement tester une collision avec entre ton joueur et un ennemi, puis de tester si ton joueur est dans tel animation (genre qui donne un coup de poing) ?

Au moment du test, MMF va réussir un sélectionner le bon ennemi car il sera le seul en collision. (Attention, tu pourra taper d'un seul coup tout les ennemis qui se prennent le poing dans la tête)

Ensuite, en fonction de l'animation (poing en haut ou en bas) tu sais s'il y a collision que ton joueur à taper la tête ou le ventre de l'ennemi ;)
Luor
Boud Message luPosté le : 11 Nov 2008 20:23
Avatar de Boud
Explorateur

Inscrit le : 23 Mai 2008
Messages : 16
GCPoints : 8.9
Game Design - Level Design


Eagle4 > Merci pour ta réponse, j'ai de la chance d'avoir un vieux baroudeur expérimenté comme toi pour m'éclairer :)


Citation :

Pour ton simple problème, je te conseil un changement de méthode. Pourquoi ne pas simplement tester une collision avec entre ton joueur et un ennemi, puis de tester si ton joueur est dans tel animation (genre qui donne un coup de poing) ?



alors pour la méthode que tu proposes c'est la méthode que j'ai employé au début (collision entre le joueur et l'ennemi + animation coup de poing jouée), cependant elle n'est pas assez précise et du coup le joueur peut donner un coup de poing au pistolet de l'ennemi ça marche quand même...C'est pour ça que j'ai essayé la méthode des "zones de contact".


Citation :

Ensuite, en fonction de l'animation (poing en haut ou en bas) tu sais s'il y a collision que ton joueur à taper la tête ou le ventre de l'ennemi ;)



En fait avec la perspective du jeu, la direction de l'animation n'est pas vraiment déterminante pour déterminer les zones de toucher... (il s'agit d'un mouvement de type 8 directions, avec un scrolling horizontal, donc le joueur peut se positionner de facon a toucher le ventre ou la tête avec une même anim)

Pour les fast loop, effectivement ca dépasse mes compétences de vieux Klickeur... je regarderais cette option cependant, et au pire je me rabattrais vers une solution moins "précise".

Merci encore pour ta réponse !
Image
GameCorp Index du Forum -> Autres logiciels de création -> [MMF] Création Dynamique d'objets