Love 2D et physics
Stormbringer Il y a 2 ans Premium Pro - Adhésion à vie4

Bonjour à tous,

ce devlog fait suite à une demande sur le forum.

Je suis en train de développer un outil pédagogique pour un collègue installateur sanitaire qui me demande d’animer le fonctionnement d’un chauffe eau.

J’ai besoin d’utiliser la partie physics de love 2D pour animer les différents leviers qui entrent en collisions et actionnent les clapets.

Je rencontre un soucis de corps qui se rentrent dedans quand la force imprimer à l’un des corps continue de s’appliquer.

voici le schémas de fonctionnement :

fonctionnement

Je laisse le sujet ouvert et essaierai de poster les évolutions du projet.

A++

Stormbringer

Comments (4)

Bonjour Storm,
est-ce que tu pourrais expliquer le résultat que tu cherches à obtenir ?

Et j’ai également du mal à comprendre l’environnement, est-ce que le triangle du haut est fixé à un pivot sur sa pointe ? Y a-t-il un mur invisible à droite, puisque la sphère de droite semble s’immobiliser à un certain point, Y a-t-il de la gravité ?

Mais bon, je crois que pour bien simuler la physique, il faudrait d’une part décoller les objets après la détection d’une collision, et même appliquer une force de réaction sur les sphères suite à la collision avec la tige triangulaire.

Salut Syllius et merci de ta réponse
oui, en faite la tige de gauche sert à pousser le levier vertical qui a un pivot à sa base en bas (pointe basse du triangle) et se pivot vient lui même pousser la boule de droite.
Cette dernière s’immobilise au bout d’un moment avec juste une détection de coordonnée.

En fait j’ai retester mais en plaçant un objet completement à droite au pour stopper la bille de droite au lieu d’une détection de coordonnée et il semble que ça fonctionne un peu mieux.

Au final, j’ai également explorer la densité et la masse des objet, mais ce n’ai pas super simple à appréhender.

Je continue l’exploration.
Merci à toi
A++
Stormbringer

Je suis en train de travailler sur la 2e verson de mon moteur maison en C#/monogame et il sera très orienté physique. Tous les interactions se feront à l’aide de forces (et non de déplacement d’objet par pixel ou vitesse arbitraire). Je crois que le problème que tu expose sera un bon cas pour tester mon moteur.

Pour le moment j’ai pas mal terminé le traitement des forces de translation, là je vais m’occuper des moment de force pour générer les rotations. Et il restera le plus difficile, traiter les collisions avec la physique.

Je vais te revenir si j’arrive à faire ce que tu recherches.

Salut Syllius,
Merci pour cette réponse. En fait j’ai avancé aussi de mon coté et je suis arrivé à un résultat acceptable à défaut d’être « parfait ».
J’ai bidouillé avec la densité et la masse des objets. J’ai du coup monté les densité très fortement du style (90 – 100) là où sur les tutos de base ils mettent 1 – 5.

Cela a permis d’avoir des objets très dur et donc, qui ne rentrent pas l’un dans l’autre. Le prix à « payer » est que du coup les forces à appliquer deviennent super élevé.
Par exemple, pour le levier de gauche avec une masse de 50 et une densité de 90, j’applique une force de 25000 pour pousser l’ensemble.
Ce n’est gênant en soit, mais ça oblige à tout reconsidérer différemment. A cela s’ajoute aussi l’échelle de mesure. C’est le coefficient qui permet de définir le rapport entre 1 pixel et un mètre.
Plus il est élevé et plus les forces sont démultiplié (logique).

Au final, cela fait beaucoup de paramètres à gérer.

Franchement, j’ai quand même bien galéré avec la physique. Certes, ça peut avoir son utilité dans certain jeux et là pour le coup ce n’est pas un jeu que je développe, mais ça complique vite les choses.

Merci à toi
A++
Stormbringer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.