Hi Scott,
is there a way to calculate the movement for a body in the coming n seconds? Collisions must not been taken into account.
Thomas
cpBody body = *(cage.body.body);
cpPolyShape shape = *((cpPolyShape *)cage.shape.shape);
shape.shape.body = &body;
cpVect gravity = space.gravity;
int count = 0;
for(int i=0; i<300; i++){
cpBodyUpdatePosition(&body, FIXED_TIMESTEP);
cpBodyUpdateVelocity(&body, gravity, 1.0f, FIXED_TIMESTEP);
if(cpSpaceShapeQuery(space.space, (cpShape *)&shape, NULL, NULL)){
// draw shape
break;
}
if(i%10==0){
// draw dot
}
}
body.position_func(&body, dt);
body.velocity_func(&body, gravity, damping, dt);
cpFloat damping = cpfpow(space->damping, dt);
void cpBodyUpdateVelocity_boomerang(cpBody *body, cpVect gravity, cpFloat damping, cpFloat dt)
{
cpBodyUpdateVelocity(body, gravity, damping, dt);
ZXEntityBoomerang *boomerang = (ZXEntityBoomerang*)((ShapeData*)body->data)->entity;
if([boomerang flying])
{
cpBodySetAngVel(body, 60 * [boomerang sign]);
cpBodyActivate(body);
cpBodyApplyImpulse(body, [boomerang returnVect], cpvzero);
boomerang.returnVect = cpvrotate([boomerang returnVect], cpvforangle(CC_DEGREES_TO_RADIANS(1.6 * [boomerang sign] * 60.0 * dt)));
}
}
Users browsing this forum: No registered users and 1 guest