Я новичок в физике в cocos2d. Я использую бурундук, и когда два объекта сталкиваются, его просто «мягко», как и они, сделанные из губки или резины.биткомбинация слишком мягкая
Мой код:
cpInitChipmunk();
space = cpSpaceNew();
space->gravity = cpv(0, 0);
schedule(schedule_selector(HelloWorld::step), 1.0f/60.f);
astroBody = cpBodyNew(100, INFINITY);
astroBody->p = cpv(512,384);
cpSpaceAddBody(space, astroBody);
int num2 = 8;
cpVect vertsAstro[] = {
cpv(-17.0f, -44.9f),
cpv(-29.5f, -33.2f),
cpv(-32.9f, -13.1f),
cpv(-24.0f, 11.7f),
cpv(24.6f, 11.5f),
cpv(32.9f, -12.9f),
cpv(29.3f, -33.1f),
cpv(17.0f, -44.7f)
};
astroShape = cpPolyShapeNew(astroBody, num2, vertsAstro, cpv(0,0));
astroShape->e = 0.0f;
astroShape->u = 0.0f;
astroShape->collision_type = 0;
astroShape->data = player;
cpSpaceAddShape(space, astroShape);
cpBody *box = cpBodyNew(INFINITY, INFINITY);
box->p = cpv(z->getPosition().x+32, z->getPosition().y+32);
int num = 5;
cpVect verts[] = {
cpv(-32, -32),
cpv(-32, 32),
cpv(32, 32),
cpv(32, -32),
cpv(-32, -32)
};
cpShape *boxShape = cpPolyShapeNew(box, num, verts, cpv(0,0));
boxShape->e = 0.0f;
boxShape->u = 0.0f;
boxShape->collision_type = 1;
boxShape->data = z;
cpSpaceAddStaticShape(space, boxShape);
Таким образом, эти объекты встречными, и она слишком мягкая. Могу ли я заставить его как-то выглядеть, как два камня поражают друг друга?
Я думаю, что я должен обновиться до версии v6. Благодарю. – McDermott
Я сталкиваюсь с игроком и объектами, задавая скорость игрока ('astroBody-> v = vector;') Это делается каждый тик. Я думаю, что это может быть проблемой. – McDermott
Хорошо, я понял. Теперь я использую cpBodyApplyForce(), и теперь он работает отлично. Объект сталкивается сейчас, как я и хотел. Прямая настройка скорости была слишком большой. – McDermott