0

我正在尝试添加一条线作为 box2d 主体,厚度几乎为 0 或 1 像素。我尝试使用很多方法,如 setasedge、setasbox,但我无法得到它。

    groundBox.SetAsEdge(b2Vec2([self x:256],[self y:0]), b2Vec2([self x:256],[self y:64]));

    //groundBox.SetAsBox(0.01, 1.11, b2Vec2([self x:256],[self y:0]), 0.1);

    groundBody->CreateFixture(&groundBox,0.1f);

并且对于 b2EdgeShape 显示它不存在。我包含在 box2d 参考 api 中。你能建议我画一条几乎为零粗细的线吗?

4

1 回答 1

0

我不知道 cocos2D 本身,但我确信物理和显示是分离的。您可能想尝试查找 cocos2D 管理显示的位置并验证您的显卡是否能够显示细线(例如,对我来说较细的是 0.4):

GLfloat lWidth[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, lWidth);

顺便说一句,如果您的 cocos2D 支持 Box2D 2.2,您可以尝试使用链对象而不是边缘,是否启用循环。

于 2011-12-19T22:59:19.773 回答