Page 1 sur 2

Chipmunk 4.1.0 : moteur physique pour la 2D

Publié : sam. 17/janv./2009 14:45
par eddy
lien : http://www.purebasic.fr/english/viewtop ... 515#274515
vidéo : http://fr.youtube.com/watch?v=sTHoWaTNJiA

Maintenant je cherche quelqu'un qui pourrait compiler la lib sur mac et linux

Publié : sam. 17/janv./2009 14:48
par Anonyme
Linux ! :D


L'import est pas bon pour linux :

ImportC "..\Chipmunk\Chipmunk.so"

doit être :

ImportC "-lChipmunk.so"

Publié : sam. 17/janv./2009 14:57
par eddy
Je peux pas le compiler sous linux
mais si tu as une version avec une correction, je peux l'ajouter dans le ZIP.

Est-ce que quelqu'un a testé la lib sur une machine 64bits ?

Publié : sam. 17/janv./2009 15:02
par Anonyme
Donne moi les dépendances du chipmunk si il y en a que je puisse voir se soir.

Publié : sam. 17/janv./2009 15:08
par eddy
C'est ça dont tu as besoin ?

Code : Tout sélectionner

chipmunk.h
---
   cpVect.h
   cpBB.h
   cpBody.h
   cpArray.h
   cpHashSet.h
   cpSpaceHash.h
   cpShape.h
   cpPolyShape.h
   cpArbiter.h
   cpCollision.h
   cpJoint.h
   cpSpace.h

Publié : dim. 18/janv./2009 13:11
par Anonyme
Le moteur Chipmunk compile sans problème avec les sources chopé sur le web , mais ton wrapper dois avoir des erreurs , impossible de compilé quoi que se soit , pourtant tout m'a l'air d'être correct.
je suppose que ca viens de l'édition de lien , comment Chipmubk affiche les objet ? avec OpenGL ? sdl , glut ?

Publié : dim. 18/janv./2009 16:03
par eddy
Les sources sur le web compile un projet EXE.
C'est normal OPengl ne sert à rien pour un moteur physique. Ya que des fonctions dedans.

Tu as essayé de compiler sur quel machine ou OS ?

Publié : dim. 18/janv./2009 16:07
par Anonyme
Les sources sur le web compile un projet EXE.

bah , non , je compile bien le .so (équavalent de ta lib)
C'est normal OPengl ne sert à rien pour un moteur physique. Ya que des fonctions dedans.
j'ai bien compris , c'est évident , mais je voulais savoir comment tu affiches le tout , avec Purebasic , ou chipmunk s'occupe du rendu ?

Tu as essayé de compiler sur quel machine ou OS ?
Ubuntu

Publié : dim. 18/janv./2009 16:10
par eddy
Quel message d'erreur il t'affiche ?
Où est-ce qu'il plante ?

Tu peux tester ce code pour voir si au moins il trouve les fonctions dans ta lib.
Copie le fichier .SO dans ton répertoire et lance le code.

Code : Tout sélectionner

ImportC "chipmunk.so"
cpInitChipmunk()
EndImport

cpInitChipmunk(); test l'initialisation 

Publié : dim. 18/janv./2009 16:41
par Anonyme
Le compilo fige au moment de l'inclusion de Chipmunk.pb , je regarde ou sa pêche , et je modifie pour que ca tourne , dès que c'est près , je te fait une archive.

Publié : dim. 18/janv./2009 16:53
par Anonyme
La macro Const semble être à l'origine du problème elle sert a quoi ? 8O

Publié : dim. 18/janv./2009 17:05
par Anonyme
idem ici :

Code : Tout sélectionner

Structure cpJoint
	*klass.cpJointClass
 	*a.cpBody: *b.cpBody
EndStructure

cpJointClass pose un probleme.

Publié : dim. 18/janv./2009 17:08
par Anonyme
Demo1.pb

Code : Tout sélectionner

   *body=cpBodyNew(1.0, cpMomentForPoly(1.0, ArraySize(vecBox()), @vecBox(), cpvzero) )


invalid access memory.

Publié : dim. 18/janv./2009 17:15
par Anonyme
ca ne fonctionnera jamais sous linux , le wrapper est trop complexe et trop "windozé" , c'est aussi pour cela que je te parlais de pointeur , plus simple a gerer... :wink:

Publié : dim. 18/janv./2009 18:13
par eddy
Cpl.Bator a écrit :ca ne fonctionnera jamais sous linux , le wrapper est trop complexe et trop "windozé" , c'est aussi pour cela que je te parlais de pointeur , plus simple a gerer... :wink:
ca n'a rien à voir avec Windows, ya aucune API dedans et j'ai changé qu'une ligne dans le source.
Ton problème est lié au compilateur et à la version de ton code source.

Le code est complexe parce que les méthodes d'importation de PB sont limitées.
J'ai fait plein de macro pour palier à ce problème.

A tous les coups, c'est la manière dont il expose les paramètres de type structure qui change.

:arrow: voilà ce qui se passe dans ma version:

Code : Tout sélectionner

cpBodyNew(1.0, cpMomentForPoly(1.0, ArraySize(vecBox()), @vecBox(), cpvzero\x, cpvzero\y) )
:arrow: dans ta version ce serait ça:

Code : Tout sélectionner

cpBodyNew(1.0, cpMomentForPoly(1.0, ArraySize(vecBox()), @vecBox(), @cpvzero) )