Я создаю тело с множеством вершин, чтобы оно сталкивалось с другими телами в сцене. Это делается с помощью b2ChainShape
, но я сначала попытался создать одно ребро этой цепочки (v2v
— метод преобразования координат):
b2Vec2 v1 = [U v2v:CGPointMake(0, 150)];
b2Vec2 v2 = [U v2v:CGPointMake(50, 150)];
b2EdgeShape shape;
shape.Set(v1, v2);
Это работает, как и ожидалось: другие тела сталкиваются с этим краем. Как ни странно, при использовании одних и тех же вершин для формы цепи коллизии нет:
b2Vec2 vertices[2];
vertices[0] = [U v2v:CGPointMake(0, 150)];
vertices[1] = [U v2v:CGPointMake(50, 150)];
b2ChainShape shape;
shape.CreateChain(vertices, 2);
Есть идеи, почему? Цепи используют какую-то другую систему координат?