gpt4 book ai didi

c++ - 花栗鼠碰撞太软

转载 作者:行者123 更新时间:2023-11-30 03:02:02 24 4
gpt4 key购买 nike

我是 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);

所以这些物体在碰撞,而且太软了。我能以某种方式让它看起来像两 block 石头互相撞击吗?

最佳答案

您必须使用 Chipmunk 5。您需要直接设置字段,例如 shape->e = 1.0。

getter/setter 函数是 Chipmunk 6 的一部分。您仍然可以直接设置字段,但建议不要这样做,因为 setter 函数会在更改值时自动唤醒对象。

关于c++ - 花栗鼠碰撞太软,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com