Polygon Problem
Posted: Sat May 29, 2010 8:06 am
I have a program that reads a file for physics information, then creates a physics scene. The problem is, when I create polygons, regardless of mass, or points, group or layer, the polygon won't collide. I tried doing a "cpSpacePointQueryFirst" over it, during the simulation with my mouse, and it doesn't register. Here is the relevent code:
I first checked to see if the pnt() and points variables were correct, which they were, and the shape displays correctly in the simulation. What's odd, at least to me, is that "cpSpaceHashEach()" will find the shape is draw it perfectly, but the "cpSpacePointQueryFirst" won't.
When I put segments and circles into the simulation, there is absolutely no problem.
Any help would be nice. If you need to see more code, I can post more.
Thanks,
-Oz
:: EDIT ::
I should mention the size and count are 30 and 1000, respectively
::EDIT ::
I just ran a few more tests, and it seems that the polygon's collision detection is really random/not reliable. seems to collide when the shape/collision is on certain angles, but not always. Is this a chipmunk bug?
Code: Select all
ps->space = cpSpaceNew( )
cpSpaceResizeStaticHash( ps->space, size, count )
cpSpaceResizeActiveHash( ps->space, size, count )
ps->space->iterations = iterations
ps->staticbody = cpBodyNew( INFINITY, INFINITY )
' ... Sometime later in the code ...
var points = child->values/2
dim pnt(0 to points-1) as cpVect
for i = 0 to points-1
pnt(i).x = cdbl( *child->value[i*2] ) : pnt(i).y = cdbl( *child->value[(i*2)+1] )
next i
var tbody = cpBodyNew( mass, cpMomentForPoly( mass, points, @pnt(0), cpvzero ) )
tbody->p = center
var tshape = cpPolyShapeNew( tbody, points, @pnt(0), cpvzero )
tshape->e = e
tshape->u = f
tshape->group = group
cpSpaceAddBody( ps->space, tbody )
cpSpaceAddShape( ps->space, tshape )
When I put segments and circles into the simulation, there is absolutely no problem.
Any help would be nice. If you need to see more code, I can post more.
Thanks,
-Oz
:: EDIT ::
I should mention the size and count are 30 and 1000, respectively
::EDIT ::
I just ran a few more tests, and it seems that the polygon's collision detection is really random/not reliable. seems to collide when the shape/collision is on certain angles, but not always. Is this a chipmunk bug?