Moteur physique 2d chipmunk.. en delphi!

Soyez le premier à donner votre avis sur cette source.

Vue 5 598 fois - Téléchargée 861 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

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
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
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
13
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
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Haha j'avais complètement oublié a propos du clic droit et des grosses particules. Comme quoi :p

Merci Cincap!
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
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.
Afficher les 6 commentaires

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.