Moteur physique 2d chipmunk.. en delphi!

1/5 (6 avis)

Vue 6 609 fois - Téléchargée 963 fois

Description

Bonjour,
en fouillant dans mes archives j'ai retrouvé ce code écrit il y a pas mal de temps (il y a onze mois en fait)... je ne l'ai jamais jugé assez élaboré pour poster sur DelphiFR mais puisque je n'y porterai probablement plus de modifications pourquoi pas le partager. Il s'agit d'un exemple d'utilisation de la librairie de physique en deux dimensions Chipmunk codée en C++ (pas par moi). Quelqu'un a écrit un header en Delphi et on peut s'en servir pour utiliser la librairie depuis son application Delphi. Mon exemple crée simplement des petites boules dans un espace clos... donc c'est assez basique par rapport au potentiel de la librarie... il y a peu de commentaires et mon code n'est pas magnifique mais voilà, j'éspère que des personnes y trouveront l'inspiration d'écrire des applications plus élaborées basées sur ce moteur physique.

Le projet est pret a l'utilisation, j'ai inclus la DLL et le header. Ca devrait tourner pas trop mal (après tout c'est pas du beau code de ma part), mais évidemment ca dépend de votre processeur. Enfin bref.

Source / Exemple :


// zip

Conclusion :


Voila... enjoy.

Link vers le site du projet Chipmunk: http://code.google.com/p/chipmunk-physics/
Link vers le header: http://code.google.com/p/chipmunk-pascal/ (alternativement: http://www.pascalgamedevelopment.com/content.php?119-Chipmunk-binding-for-Pascal)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 nov. 2011 à 12:39
Salut Cantador,
oui, ca fait longtemps que je n'avais pas fréquenté CS. Franchement ca fait longtemps que je n'ai pas touché Delphi, et depuis que j'ai acquis mon nouvel ordinateur (avec une vraie carte graphique! ma premiere) j'ai voulu expérimenter un peu avec le développement 3D... ben voila je m'en suis lassé, donc retour aux sources. Ceci dit je suis pas mal occupé en ce moment de facon générale donc pas trop le temps de faire grand chose, peut-etre dans un mois ou deux j'aurai quelques bonnes sources a partager.
Merci pour le commentaire et la note :)

Sinon on-topic, perso j'aime pas trop ce moteur physique. Il fonctionne en laissant faire les objets ce qu'ils veulent (essentiellement) puis corrige le résultat (c'est pour ca que desfois avec ce programme on peut voir des boules les unes dans les autres). Je préfere les moteurs physiques qui sont précis, c'est a dire qui garantissent que le mouvement d'un objet est physiquement correct (en utilisant une méthode de recoupement de temps notamment, ou les temps de collision sont calculés de facon exacte plutot qu'approximativement). Mais ces genres de moteurs physiques sont en général payants et en 3D car plus compliqués, le seul que j'ai trouvé est Box2D mais je n'ai pas trouvé d'interface Delphi.

Voir http://fr.wikipedia.org/wiki/Détection_de_collision#A_posteriori_ou_a_priori
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
8 nov. 2011 à 21:33
Salut Bacterius,

un peu de ménage dans tes affaires.
c'est signe d'un changement de cap pour toi..
très amusant ce programme.
on dirait des bactéries qui se blotissent pour se protéger du froid..et sans se manger
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
7 nov. 2011 à 12:09
Haha j'avais complètement oublié a propos du clic droit et des grosses particules. Comme quoi :p

Merci Cincap!
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
7 nov. 2011 à 08:33
Bonjour à toutes et à tous,

@ BACTERIUS, bravo pour cette source, elle fonctionne sous Seven 64 bits et Delphi 6.

Un click gauche maintenu et déplacement = petites particules.

Un click droit maintenu et déplacement = grosses particules.

Et pour le fun, elles se mélangent.

@+,

Cincap
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
4 nov. 2011 à 11:57
La DLL a probablement changé pas mal depuis que j'ai codé ceci, et les points d'entrée ont probablement changé aussi. Il faudrait trouver le header mis a jour (si il existe) et mettre a jour la source.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.