Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 用定距接头连接两个圆_Cocos2d Iphone - Fatal编程技术网

Cocos2d iphone 用定距接头连接两个圆

Cocos2d iphone 用定距接头连接两个圆,cocos2d-iphone,Cocos2d Iphone,我正在使用cocos2d和box2d,我正在尝试生成两个圆,这是我用这段代码做的 b2BodyDef bodyDef[2]; b2Body *body[2]; for (int i=0; i<=1; i++) { bodyDef[i].type = b2_dynamicBody; bodyDef[i].position.Set(((i+1)*blobSize)/PTM_RATIO,((i+1)*blobSize)/PTM_RATIO); body[i] = wo

我正在使用cocos2d和box2d,我正在尝试生成两个圆,这是我用这段代码做的

b2BodyDef bodyDef[2];
b2Body *body[2];

for (int i=0; i<=1; i++) 
{
    bodyDef[i].type = b2_dynamicBody;
    bodyDef[i].position.Set(((i+1)*blobSize)/PTM_RATIO,((i+1)*blobSize)/PTM_RATIO);
    body[i] = world->CreateBody(&bodyDef[i]);

    // Define another box shape for our dynamic body.
    b2CircleShape circle;
    circle.m_radius = (blobSize)/PTM_RATIO;

    // Define the dynamic body fixture.
    b2FixtureDef fixtureDef;
    fixtureDef.shape = &circle; 
    fixtureDef.density = 1.0f;
    fixtureDef.friction = 0.4f;
    fixtureDef.restitution = 0.2f;
    body[i]->CreateFixture(&fixtureDef);
}

此代码编译时没有错误,但是执行时会发生与以前相同的情况,只生成2个循环,但它们没有连接到关节

Initialize()的最后2个参数指定关节在世界坐标中的两个定位点,一个在body0上,一个在body1上。我不确定您尝试使用vector blobCenter实现什么,但这两个锚点(将它们视为您正在创建的关节的两个端点)在技术上不应该相同

首先,请尝试:

jointDef.Initialize(body[0], body[1], body[0]->GetWorldCenter(), body[1]->GetWorldCenter());
这将设置一个距离约束=创建的两个实体之间的初始静止距离,该距离随后将由关节保持

最后但并非最不重要的一点是,在代码末尾将关节添加到世界:

world->CreateJoint(&jointDef);
world->CreateJoint(&jointDef);