box2d ボディになり、CCSprite オブジェクトによってペイントされる線を描画する必要があります。今、私は非常に素晴らしい線を描くことができました(デバッグ描画中にのみ表示されます)が、描画中に使用してすべてのポイントの位置を取得できるかどうかはわかりません。コードが以下のようになっている場合、CCSprite 画像は、ユーザーが非常にゆっくり描画した場合にのみ表示されます。ユーザーがすばやく描画している場合、画像の点はほとんど見えません。SetAsEdge 関数からポイントを取得し、1 つの描画 CCSprite ごとにポイントを取得する必要があると思いますが、このポイントを取得する方法がわかりません。
CGPoint start = [touch locationInView: [touch view]];
start = [[CCDirector sharedDirector] convertToGL: start];
CGPoint end = [touch previousLocationInView:[touch view]];
end = [[CCDirector sharedDirector] convertToGL:end];
float distance = ccpDistance(start, end);
if (distance > 1)
{
int d = (int)distance;
b2Vec2 s(start.x/PTM_RATIO, start.y/PTM_RATIO);
b2Vec2 e(end.x/PTM_RATIO, end.y/PTM_RATIO);
CCSprite *obj = [CCSprite spriteWithFile:@"image.png"];
b2BodyDef bd;
bd.userData = obj;
bd.type = b2_staticBody;
bd.position.Set(0, 0);
obj.position = ccp(start.x,start.y);
[self addChild:obj z:1];
b2Body* body = _world->CreateBody(&bd);
b2PolygonShape shape;
shape.SetAsEdge(b2Vec2(s.x, s.y), b2Vec2(e.x, e.y));
body->CreateFixture(&shape, 0.0f);
}