Page 2 sur 2

Publié : dim. 18/janv./2009 19:41
par Anonyme
Tu as changer le code source de chipmunk ? cpBodyNew() ?
car je ne pouvais pas compiler a partir de tes sources il me semble.

Publié : dim. 18/janv./2009 20:52
par eddy
c'est la dernière version 4.1.0

Code : Tout sélectionner

// chipmunk.h
typedef float cpFloat

Publié : dim. 18/janv./2009 21:57
par Anonyme
voila maintenant j'ai
Chipmunk-4.1.0-win32/Purebasic$ ./demo1
Erreur de segmentation

Dans le wrapp , j'ai fait cela pour la classe Cpjoint:

Code : Tout sélectionner

	  CompilerIf #PB_Compiler_OS = #PB_OS_Windows
	  *klass.cpJointClass
	  CompilerEndIf
	  CompilerIf  #PB_Compiler_OS = #PB_OS_Linux
	  *klass.i
	  CompilerEndIf
j'ai virer aussi tout les appels a la macro CONST qui visiblement ne sert a rien.

Publié : dim. 18/janv./2009 22:02
par Anonyme
Pourquoi as tu récris les fonctions :

Code : Tout sélectionner

CompilerIf 0
	Procedure cpInitChipmunk ()
	EndProcedure
	Procedure.f cpMomentForCircle (m.f, r1.f, r2.f, offset.cpVect)
	EndProcedure
etc...
sans sa marche aussi.


L'erreur de segmentation viens de la fonction de dessin.
je cherche pourquoi maintenant.

Publié : dim. 18/janv./2009 22:09
par Anonyme
j'avance j'avance :D

le coupable :

Code : Tout sélectionner

cpSpaceHashEach(*space\activeShapes, @DrawShape(), *datas)

Publié : dim. 18/janv./2009 22:16
par Anonyme
J'ai torturé , la dernière fonction , elle ne savait pas grand chose , elle m'a balancer un nom :

Code : Tout sélectionner

DrawShape()
Ce nouveau coupable a vite craché le nom du complice , DrawPolyShape()
et ce dernier sous la torture nous dit que :

Code : Tout sélectionner

   Circle(*poly\shape\body\p\x, *poly\shape\body\p\y, 2, RGB(0, 0, 255))
Invalid access memory

Publié : dim. 18/janv./2009 22:20
par Anonyme
Ca tourne , par contre , j'ai des problèmes avec les circles :/

Publié : lun. 19/janv./2009 14:37
par eddy
tu as changé le typedef dans ton code pour le type cpFloat ?
Mon wrap correspond à des structures utilisant des floats

Publié : lun. 19/janv./2009 18:03
par Anonyme
oui

Publié : lun. 19/janv./2009 18:31
par Stefou
Salut à tous et merci pour ce lien ! :D

Je trouve cela formidable et j'aimerais bien l'exploiter un peu mais j'avoue ne rien avoir compris.
Existe t-il un tuto ?

Merci d'avance et bon courage pour la version Linux.

Publié : mar. 20/janv./2009 0:40
par eddy
A tous les coups ton compilateur optimise les structures, les offsets sont donc décalés.

C'est pour ça que j'ai choisi de garder les floats dans ma version.
J'avais pas trouver comment désactiver cette optimisation

Publié : mer. 21/janv./2009 3:52
par eddy
J'ai mis à jour ma version.

J'ai finalement plus besoin de modifié le typedef, je le laisse à DOUBLE.
J'ai trouvé ce qui manquait dans le chipmunk.H pour la compatibilité avec PB :

Code : Tout sélectionner

/// compatibility with PB structure alignment (1 byte) 
#pragma pack(1)    
/// conversion to PB type (enum => long)          
#pragma enum(4)

Publié : mer. 21/janv./2009 23:30
par eddy
Pour les tutoriaux, je vais faire un petit éditeur qui génère du code. Comme ça tu vois tout de suite l'effet des paramètres

Publié : jeu. 22/janv./2009 7:49
par Stefou
Merci eddy, j'attends cela :D