Bonjour,
J'aurais bien aimer me présenter avant de poser une question mais étant ridicule par rapport aux autres membres (pas en école d'informatique ni ayant 25 ans mais 16 ans et 1ereS).
Bref, m'étant gentillement fait renvoyer chi** sur le forum anglais d'Irrlicht, je suis extrement content qu'un forum Français existe ! (goulée d'oxygène pour mon projet).
Mon problème, le saut : chose indispensable pour un FPS.
La question étant, comment les programeurs des jeux basé sur Irrlicht ont il fait pour gerée le saut ?!
Je suis rester sur un enchainement du genre (apres formatage, mon code a disparue donc le français le remplace) :
1°INITIAL-Gravité : -0.5
2°SAUT -Gravité : 0.5 -> Time : ??? (chronomètre)
3°SAUT -Time : ??? (expire) -> Gravité : -0.5
4°FINAL -Gravité : -0.5
Mais ne me servant que de Irrlicht, je suis resté bloqué sur le temps avec les fréquances, les sous fonctions, ...
Je comprendrais si la question parait lourd et inutile aux connaisseurs mais resté bloqué n'a que pour effet de gonflé le code de recherche et fini par tout buggé. Je remercie donc d'avance les personne acceptant de participé au topic afin de me sortir de cette impasse.
A+
Willikus
Hors ligne
salut,
tout d'abord bienvenue
Pour les sauts ça dépend de ce que tu utilises. Perso pour une petite démo j'avais bidouillé avec le cosinus, un truc du genre Player.Pos = cos(time);
Pour un projet plus sérieux, le mieux est d'utiliser un moteur physique (ode, newton...)
Hors ligne
Le projet est orienté MMORPG (ne riez pas -_-")
Donc le moteur physique on évite car on cherche a avoir des serveurs light (relatif).
Le cosinus est une fonction de Irrlicht (ou prit en charge) ou provient d'une bibilo mathématique ?
Mais c'est vraix je n'avait pas penser a des fonction comme ça... Mais comment a tu fait pour éviter que la camera remonte apres... (sur ma calculette graph, sur {-1.5, 1.5} la courbe a la bonne forme mais apres ce n'est plus bon...)
Bref, tout réside dans le time! Auquel je vait m'attaquer !
a+
W
Hors ligne
bah faut programmer le truc pour que quand cos(t)=cos(origine) provoque l'arret de la fonction, avec une boucle for par exemple, ou peut être un while. ( Irrlicht, c'est de la prog évennementielle ou séquentielle, ca je ne sais pas ).
Hors ligne
Oki doki !
Ca m'a l'air jouable !
Merci de votre aide... Je vait essayer tout ça, on verra apres. Pour l'instant l'explication m'a l'air convenable !
a+
W
Hors ligne
Oui une petite fonction avec cosinus parait indiquée si tu veux quelque chose de light ; si tu trouves une manière sympa de gérer ce saut, n'hésite pas à poster un extrait de ton source sur cette fonction ; ça pourrait surement aider d'autres personnes :-)
Hors ligne
la trajectoire lors d'un saut correspond à plusieur grandeur physique associé à chaque composante du mouvement. La trajectoire commune est une trajectoire parabolique.
Dans le cadre de ton projet le choix du cosinus s'avère trés abstraits et aloigné d'un trajectoire simili-réel.
Je te laisse un petit cours sur le sujet que je te conseil de potasser :
http://www.al.lu/physics/Downloads/Prem … nstant.pdf
Il est vrai que l'utilisation de la formule réel dans le cadre d'un jeux vidéo n'est peut être pas la meilleur solution, némmoins une bonne maitrise du sujet et des connaissance en trigonométrie devrait te permettre de déterminer une équation de mouvement la plus aproprié possible.
Dernière modification par wizad (23-10-2006 00:26:22)
Hors ligne
le saut, c'est comme le tir d'un boulet de canon, ou le poids du boulet = celui de la personne, et ou langle est soit fixe, soit dépend de la vitesse initiale ( a vitesse max, angle = 30 °, à vitesse nulle, angle = 90 °, ce n'est qu'un exemple )
Hors ligne
Bon, j'étais parti chercher..., je reviens et je vois 2 reponses (que je remercie au moins pour les formules qui peuvent me simplifier la tache).
Mes 'recherches' ont conclué que, comme avant, je stagne...
-Cosinus, gestion de la colision durant le saut, risque de bug ?!
-Ma technique avec une inversion de gravité bug au niveau du temps et de la trajectoire.
Je m'heurte donc a être obligé d'utiliser un moteur physique...
Question sur le sujet :
-Compatibilité avec un reseau internet ?
-Difficulté ?
-Moteur conseiller a un noob ?
Merci de m'accorder encore un peu de votre temps.
PS : Dans le cadre de mon projet, j'ai réalisé de petites modelisations du style médiéval-fantastique... si ça interesse... (j'ai que ça a proposer pour ne pas passer pour le boulet )
Dernière modification par Willikus (18-11-2006 20:11:13)
Hors ligne
Willikus :
Question sur le sujet :
-Compatibilité avec un reseau internet ?
-Difficulté ?
-Moteur conseiller a un noob ?
Pour la mise en place de la physique via réseau/réseau Internet... c'est un vaste sujet ^^ et je n'ai pas le niveau pour te répondre
Pour la difficulté, et bien quelque soit la librairie physique que tu utiliseras (newton, ode, ...), tu peux être tranquile car c'est justement toutes ces librairies qui font le sale boulot à ta place !
Je te conseille ode ou newton car ils sont tous deux faciles à mettre en place d'autant plus que chacun est livré avec des samples qui permettent d'assimiler rapidement leur fonctionnement.
Hors ligne
je reviens un peu à la charge même si je n'ai pas de réponse concrète.
A une époque pas si lointaine un petit jeu circulait sur le calculatrice de marque casio. Il s'agissait d'atteindre une cible (éventuellement un autre joueur) avec son canon en entrant un valeur d'angle et une valeur de force. Il faudrais peut être s'inspiré de ces formules (que je suis entrain de rechercher) pour obtenir un saut assez réaliste et utilisant peut de ressources.
Néammoins même pour un mmorpg je préconiserais l'utilisation d'un moteur physique à condition de pas choisir un usine à gaz et de pousser la reflexion pour l'intégrer coté client et non coté serveur.
Je m'explique :
- Plutot que de faire faire les calculs de trajectoire physique cote serveur pour aprés renvoyé la position des joueurs à chaque instant t, le serveur se chargerait d'envoyer les composantes des mouvements des joueurs (saut, déplacement, tir...) au client et c'est le client qui executerait les formules (entre autre de physique).
Je suis conscient que mon système pose d'autre problème qui à mon sens ne sont pas insurmontable mais relève plus d'un travail d'étude et de recherche que d'un travail de production.
Hors ligne
voilà la routine de la trajectoire d'un projectile :
intPes : intensité de la pesanteur (9.81 à Paris) angle : angle de départ (en degrés) vitesse : vitesse de départ (en m/s) hauteur : hauteur de départ y = -0.5 * intPes * ((1 + Math.Tan(angle) * Math.Tan(angle)) / (vitesse * vitesse)) * (x * x) + (Math.Tan(angle) * x) + hauteur;
C'est barbare comme formule mais il faut pas chercher à comprendre ça créée une parabole.
Hors ligne
rahhh plus rapide que moi sur ce coup là. Et Willikus en cas de pb demande à ton prof de physique quelques infos (c'est du programme de terminale).
Hors ligne
Perso je l'ai eu en maths (1ère S), il y a un chapitre polynômes du second degré et la formule en est un.
Hors ligne
Bon, merci beaucoup pour cette vague de reponse...
Je pense m'attaquer a un moteur physique : ODE... (tuto avec irrlicht )
Pour le prof de physique... je ne croit pas qu'il puisse beaucoup m'aider... mais mon père est prof de méca/industriel... il doit savoir...
Merci, je vous recontact le weekend prochain avec le résultat de mon avancement...
Hors ligne
Heuu...
Ca parait con, mais pourquoi chercher a faire compliqué ??? Les sinus, cosinus et autres consomment du process, mettre un moteur physique juste pour que le perso fasse de petits bons a petit level et de grands bons a haut levels... Modifie juste l'altitude du perso, non ? Gère ça comme un déplacement vers le haut d'une durée/distance maximale. Gère l'ensemble pour interdire la possibilité de sauter de nouveau avant d'avoir atteint le sol. Et dans le cadre du mmorpg, donne la possibilité d'atteindre des hauteurs différentes en fonction d'aptitudes.
Il faut savoir rester simple.
Hors ligne
entre une ligne de code qui calcule la hauteur pendant le saut et un moteur physique il y a quand même un monde
Je suis pas sûr que ca consomme moins, et en tout cas en intégration c'est carrément plus compliqué
'fin je dis ça..... chacun son avis
Hors ligne
Oui à voir car déjà pour que la vitesse de saut soit indépendante du nombre de frame par seconde du rendu graphique, donc pour que ce saut se déroule de la même manière sur un pc merdique ou sur une bête de course, il va déjà y avoir une jolie boucle bien sympa... [Quoique irrlicht le gère avec les animations ça nan ?]
Les moteurs physiques fesant tout le sale boulot et un boulot certainement mieux optimisé que ce que l'on pourrait faire... et bien c'est donc pas forcément idiot effectivement d'y réfléchir... (coté client bien sûr)
D'autant plus que là, tu es face à un problème de saut d'accord mais est-ce que ce sera le seul ? C'est surtout par rapport à cette question que peut se faire le choix le plus adapté.
('fin je suis pas impartial car moi les jeux sans physique ça me gonfle ^^ faut que ça bouge, que ça rebondisse de partout ! lol)
Hors ligne
Je me base sur la gestion du saut dans des mmorpg connus, tel Anarchy Online, par exemple. Si vous voulez avoir une idée, installez le client de AO, créez vous un compte et testez (c'est gratos), vous verrez que l'on peut faire un truc sympa sans moteur physique. Je parle bien de RPG, hein ! Pas de quake ou autre fps dans lesquels les moteurs physiques sont devenus indispensables !
Hors ligne
Le jeu étant basé sur du FPS pur et dure, je prefert que des gens lague que le jeu (si il finie ) flop par une qualité minable...
Pour un déplacement vers le haut, j'en revient au probleme d'un timer fonctionnant simulatemant a l'affichage...
Moteur physique donc.
Merci quand même de t'interessé a mon problème
Hors ligne
Petites questions sur Le moteur Newton :
-A t'on une idée de la license ?
-Je remarque 4 librairie différente :
-mt
-mt_double
-st
-st_double
Quel librairie choisir ? Que veulent t'elles dirent ?
Hors ligne
Voilà, je suis lancé sur un truc, je devient un super boulet !!!
Ya t'il des tutos d'integration ou de newton et d'Irrlicht a part celui de Mercior's qui me lesse septique de part sa séparation en classes...
Avez vous des tuyaux pour ne pas me cracker dès le début ?
Hors ligne
Salut !!!
Je suis repartie sur le saut avec un changement de gravité (permet un semblent de moteur physique...)
Et je pose ce code :
Pour l'expliquer :
-Quand je clique sur Space : jump passe a 1 si et seulement si jump était egal a 0.
-Quand le code ci dessus s'execute, timestop est censé prendre la valeur de seconde a l'instant puis ne plus bougé.
-Apres, une condition qui fait que temps que l'écart entre timestop et seconde est inferieur ou égal a 2, la gravité est inversé.
-Apres, elle est remise correctement.
Cependant, j'ai l'impression que timestop ne remplie pas son role, ce qui fait que je ne peux sauter que durant les 2 seconde du démarage.
(la variable seconde est INT, la variable timestop est INT, déclarer au début et fixer a 0.)
Merci de m'aider
Hors ligne
franchement je pense pas que ce soit la bonne approche
de mon point de vue, il ne faut coder QUE des trucs super super super simples, sinon c'est que c'est pas la bonne idée
ton code est deja trop complexe pour que tu puisse sérieusement l'utiliser par la suite
pour ton saut tu as deux choix :
soit ton saut est toujours le meme, et tu fait suivre a ton perso une courbe définie (c'est le cas de nombreux jeux) pas besoin de recalculer la meme trajectoire a chaque fois
si tu utilise la gravité irrlicht, alors tu la désactive pendant le saut, et tu le bouge comme tu veux
soit tes sauts varient en fonction du poids des persos, la deux solutions :
soit tu fait la solution 1 avec un parametre qui varie
soit tu integre un moteur physique, mais bon, si c'est juste de la physique pour que ton perso saute en l'air c'est tuer une mouche a coup de grenade
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 18 invités en ligne Aucun membre connecté RSS Feed |