Je connaissais en effet le produit scalaire, sinon merci pour ton explication.
"
La méthode la plus utilisée dans ce cas est de regarder le vecteur entre la position actuelle et la précédente : ce vecteur te donne la direction par laquelle le point est arrivé.
A partir de la, tu peux te débrouiller pour faire rebondir dans le bon sens. (avec un produit scalaire par exemple)
"
C´est ce que je faisais avant pour remonter le point, pour le sortir du sol, mais j´ai changé de méthode car la nouvelle marche mieux.
Le problème étant que parfois le point rentre dans le sol à l´image 0, puis comme une trop forte pression s´exerce dessus (s´il fait partie d´une forme par exemple, donc que les autres points agissent sur lui), il reste coincé dans le sol à l´image suivante, donc on obtenait un vecteur lui aussi compri dans le sol. Donc mon point restait bloqué, ou alors je tombais dans une boucle infinie à cause d´un while.
J´avais déja connu ce probleme.
En fait, si je comprends bien, ce que tu faisais, c´est que tu laissais le point entrer a l´intérieur du rectangle, et ensuite, tu le faisais rebondir a partir de l´endroit ou il est. Et s´il était bien ancré dedans, alors, avec l´atténuation, tu n´en sortais pas.
L´erreur vient du fait qu´il ne faut pas laisser entrer le point dans le rectangle.
S´il entre, il faut immédiatement le mettre sur le bord, et ne le faire rebondir qu´ensuite. Ainsi, plus de soucis de boucle infini et de rebond infini car le rebond ne se passera plus DANS le matériau.
Pour faire cela, il faut y faire par dichotomie.
C´est a dire par succession de division par 2 pour trouver le point d´impact :
Exemple :
Disons que ta balle a comme coordonnée x = 2 (disons qu´on travaille sur une seule dimension)
tu déplaces de +10
donc tu devrais etre a +12
or a 12, tu es dans le mur (et a 2, tu es hors du mur)
donc tu essaies 7 (le point milieu entre 2 et 12)
tu detectes que tu es dehors, donc tu essaies 10.5 (entre 7 et 12)
etc... un peu comme le jeu du + ou -, avec la méthode dite de Dichotomie (qui consiste a réduire l´intervale par 2 a chaque fois)
Tu définis une tolérence minimale -> par exemple 0.01, c´est a dire qu´a force de réduire l´intervale, tu finiras par avoir un intervale inférieur a la tolérance.
Une fois que tu es passé sous cette tolérance, tu récuperes le dernier point enregistré HORS du mur
--> ce point sera un point infiniment proche du mur, mais qui n´est pas dedans
Ce sera la qu´il faut replacer la balle AVANT de la faire rebondir.
C´est comme cela que je fais dans mon petit jeu Klostro Laby (vor ma fiche) pour m´approcher des murs sans entrer dedans.
Bon, je ne sais pas si j´ai été assez clair, car je regarde un film en meme temps, donc je ne suis pas concentré.
Mais cette méthode est sympa pour éviter a un point de se retrouver a l´intérieur du mur.
S´il n´est JAMAIS dans le mur, tu n´as plus le probleme de rebond interne.
Non non tu as été très clair, merçi pour cette technique que je ne connaissais pas et que je vais sûrement utiliser un de ces jours, c´est pas con du tout ! ![]()
LP_thekillerX2,
bon travail, c´est comme cela qu´on commence, tu devrais lire plus souvent des boukins de mecanique classique (de la mecanique du mouvement surtout), c´est exellent comme travail amateur. Allez, courage...
Est-ce qu´éventuellement cela pourra m´aider à être admis dans une future école de programmation ?
Je ne mis connais pas du tout en ce qui concerne les études dans la programmation, mais je pense que tu as déjà un très très bon niveau, beaucoup de patience
hihi (merci encore d´ailleur^^), si tu continu ta filaire, je pense qu´il n´y aura pas trop de soucis, mais je ne m´y connais pas ![]()
Ok Oversnow, et si tu as encore besoin que je t´explique un truc hésiqte pas ^^
LPTheKiller_2 Posté le 22 octobre 2006 à 00:00:23 "Est-ce qu´éventuellement cela pourra m´aider à être admis dans une future école de programmation ? "
--> sans aucun doute !
Ce que tu fais te boostera dans la programmation, car tu utilises la logique de la programmation et de l´informatique, ce que tu fais t´apportera énormément d´expérience.
OK merci.
Sinon je me rappelle pourquoi je faisait pas la méthode qui consiste à renvoyer le point de là où il vient avec sa position précédente.
C´est parce que j´ai souvent besoin de faire bouger le sol, et le point lui garde la même position, donc on ne peut pas le sortir du sol en le déplaçant vers sa position précédente puisque c´est la même que la position actuelle.
En effet, c´est plus complexe, mais tu peux toujours t´en sortir ![]()
Quand tu fais bouger le sol, si la balle rentre dedans, tu fais la meme chose que si c´était la balle qui était rentrée avce le vecteur opposé.
Mais c´est vrai que c´est plus complexe.
Voilà donc un très maigre apperçu de mon premier jeu intégrant en masse LPengine :
http://pierre.parreaux.free.fr/TheAvenger/TheAvenger7.rar
Je suis actuellement en train de le programmer.
Le manteau du perso est géré par LPengine.
Les douilles et les chargeurs de mêmes.
Les cadavres le seront aussi, mais je n´ai pas encore commencé à faire les ennemis.
Pour info, il n´y a aucune animation image par image. Le perso est animé uniquement par programmation.
Il y a un bug quand on place la souris derrière le perso après avoir marché. Je vais corriger ça demain.
Très très bien fait
J´attends de voir l´IA de tes ennemis ![]()
Une nouvelle version :
http://pierre.parreaux.free.fr/TheAvenger/TheAvenger.rar
Ajouts :
- Ralentit disponible.
- Mise en 800*600 de l´écran pour plus de fluidité.
Bugs corrigés :
- Viser derrière ne fait plus tourner le bras dans tous les sens.
Pfiou c´est vraiment génial, continue !! !
Je suis bluffé !
Merci lesquale35, Oversnow et TNToon.
Voilà encore une p´tite nouvelle version.
http://pierre.parreaux.free.fr/TheAvenger/TheAvenger_2.rar
Ajouts :
- Nouvelle arme : le katana. Par contre on ne peut pas encore attaquer avec.
- Options graphiques et options physiques. Tous les paramètres ne sont pas encore fonctionnels, et ils ne se sauvegardent pas encore quand on quitte.
- Les bras font plus bouger le manteau qu´avant.
- Animation des jambes pour avancer.
Génial !, bien inspiré de matrix, le mouvent des jambes m´a bien fait rire
L´effet ralenti est vraiment super bien réalisé, rien à dire à par bravo
Par contre la texture, tu l´as fait avec The Gimp non ? enfin on dirait bien !
Continue ! ![]()
J´ai fait une avancée assez grande avec l´intégration des cadavres gérés par la physique.
http://pierre.parreaux.free.fr/TheAvenger/TheAvenger_3.rar
Ajouts :
- Cadavres gérés par LPengine.
- Vidéos au lancement (on peut les passer en cliquant).
Bon fini les ´bravooo´ et les ´houraaaa´, il faut bosser maintenant
:
Lorsqu´on meurt alors qu´on utilisait une mitraillette, c´est le pistolet qui tombe.
Ca rame un peu quand on avance et qu´on tire (j´ai une config assez bonne).
Bonne continuation !! ;- )
Oversnow : Pour le mur, je l´ai trouvé avec google image, et je l´ai copié en plusieurs exemplaires.
TNToon : Oui oui je sais, c´est parceque pour l´instant le pistolet est la seule arme à être géré par la physique, mais je vais bientôt faire les autres.
De plus, le pistolet et certains bouts du squelette physique du perso ne sont pas entièrement supprimés, donc si on meure pluseurs fois de suite ça fini par ramer pas mal. Je travaille à ce problème.
Mais en ce moment je me consacre principalement au démembrement, et tout d´abord à la décapitation ^^