bonjour à tous
je suis en train de regarder un peu le fonctionnement des événements et j'ai un petit soucis que je n'arrive pas à résoudre:
en fait j'ai réussi à faire avancer, reculer, pivoter mon perso mais pas moyen de le faire sauter...en fait si, il saute, mais il ne s'arrête pas :p
voici comment je déclare l'event:
//*******************SAUTER**********************
if(m_Nmodele != 0
&& event.EventType == irr::EET_KEY_INPUT_EVENT
&& event.KeyInput.Key == irr::KEY_KEY_C)
{
if(event.KeyInput.Key == irr::KEY_KEY_C)
sauter = true;
else
sauter = false;
return true;
}
quelqu'un pourrait il m'expliquer le code à employer pour arrêter l'event tout de suite après qu'il se soit produit svp?
j'ai cherché pas mal de temps mais je n'ai vraiment pas trouvé la solution, à vrai dire je pense surtout que j'ai encore beaucoup de progrès à faire en C++....
EDIT: j'ai essayé avec event.KeyInput.PressedDown (comme pour marche, courrir, etc) mais le problème c'est que biensur, dès que je relache la touche l'event s'arrête (donc si j'appuie que 0.5sec sur la touche, mon perso va faire un tout petit saut ^^)
Dernière modification par magikus59 (31-08-2010 20:33:05)
Hors ligne
il faut bien que tu utilises PressedDown mais remettre "sauter" à false seulement quand ton animation "sauter" est finie
soit tu définis le temps qu'il met, soit tu fixes un numéro de frame utilisé par tout tes perso, une sorte de norme, et quand l'animation arrive à telle frame, tu stop "sauter"
Hors ligne
merci!
ou alors peut être mettre à false seulement quand le perso touche le sol, je regarderai à ça, en attendant je vais faire une de tes solutions
EDIT: je viens de penser à un truc...tes solutions iraient parfaitement pour un terrain plat, mais pour moi ça n'ira pas vu qu'au final je n'aurai jamais le même saut (terrain montagneux)
il faudra donc bien que je fasse un systeme pour détecter quand mon perso aura atteint le sol (ça va surement être chaud mais bon, je trouverai)
si jamais quelqu'un a une solution plus simple je suis preneur
Dernière modification par magikus59 (31-08-2010 20:44:15)
Hors ligne
ça dépend si tu utilises la physique ou pas, et encore, parce que globalement si tu utilises un système de frame ton perso ne change pas de place enfin juste les polygones qui "bougent"
perso c'est le plus simple pour commencer, après oui c'est sûr il vaut mieux faire une détection du sol, tout dépend de ton niveau
Hors ligne
en fait là il ne s'agit pas d'une animation mais vraiment d'un déplacement:
if(m_Nmodele != 0 && sauter == true)
{
irr::core::vector3df v = m_Nmodele->getPosition();
v.Y += 3.f;
m_Nmodele->setPosition(v);
}
parce que comme tu dis, avec une anim mon mesh va rester statique en fin de compte
mon niveau ben...débutant mais je vais pas me prendre la tête la dessus, j'y reviendrai plus tard
mais je pense que ça doit être faisable...en gros:
-je recupère la position de mon perso
-je recupère le Y de mon terrain à cet endroit
- et pour mon event, je le stop dès que mon perso à atteint ce point Y
hmm ça parait simple dit comme ça lol (mais je trouverai bien, je ne demande pas le code, si je n'y arrive pas c'est que je ne suis pas prêt ^^)
Hors ligne
globalement se que tu dit est exacte, mais si tu début je ne te dit pas tout
il y a tout de fois quelque problème majeur solvable avec de la physique "pure et dure"
-obligation de connaitre le node en dessous du "perso"
-obligation de connaitre "l'épaisseur" on va dire, pour savoir ou est le contact avec le perso
-peut devenir "très" complex pour détecteur le node soujacent pour un débutant, étant donenr que tu ne va peut-être (que) te basé sur un terrain
donc en admétant que tu face un contact avec seulement le terrain, que se passerat il si ton perso rencontre en "autre" node ?
je ne sais pas dans quel genre de project tu te lance, mais aujourd'hui un logiciel qui comprend la 3d est presque toujours acompagner d'un moteur physique
-blender et 3dmax -> bullet physics
-fallout / oblivions -> physix je croix
-diablo 3 -> havok
-et la plupar des logiciel free/open source/amateur
enfin tout sa pour te dire que quoi qu'il arrive tu arrivera a un point ou tu voudras utiliser la physique ...
mais ma fois tu peut utiliser les "outils" d'irrlicht en question de "physique", enfin c'est plus de la détection de collision pas plus ... sa te suffiras sans aucun doute dans un premier "temps / pas ?", mais pas de vélociter / force / friction / etc ..
ps: j'espère que sa peut aider, je suis un peut dans un état de .. uhm .. flémingite mental ?, entre "dormire / manger et rester sur le pc" ...
Hors ligne
merci pour les précisions magun
en fait je veux juste tenter de ma faire un petit RPG mais attention je ne parle pas de faire un mmorpg qui roxxx à mort hein, je fais juste ça pour le plaisir (et ça me plait d'ailleurs ^^)
donc je ne cherche pas forcement d'avoir un bon rendu physique, la collision avec le terrain et les mesh de la scène (et encore, peut être même pas avec tout) me suffira amplement
d'ailleurs pour la collision avec tout les mesh y'a apparemment pas de moyen simple, je pense donc réunir plusieurs mesh en 1 (par exemple au lieu de définir une a une les collions des arbre, je regrouperai tout mes arbres, ou une partie dans un seul mesh afin d'y définir qu'une seule collision )
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 27 invités en ligne Aucun membre connecté RSS Feed |