#iphone #c #objective-c #cocos2d-iphone #box2d
#iPhone #c #objective-c #cocos2d-iphone #box2d
Вопрос:
Кто-нибудь знает, какой наилучший метод для создания статического тела основания со многими (~ 10000) вершинами в Box2D (версия, которая поставляется с Cocos2D).
Это то, что я делаю сейчас для cubic beziers, это выглядит нормально, но выполняется немного медленно.
for (int i = 0; i<segments; i ) {
CGPoint p2 = vertices[i 1];
CGPoint p1 = vertices[i];
b2PolygonShape poly;
poly.SetAsEdge(b2Vec2(p1.x,p1.y), b2Vec2(p2.x, p2.y));
groundBody->CreateFixture(amp;poly,0);
}
Люди говорят о b2LoopShape, но не похоже, что она включена в версию Box2d, поставляемую с Cocos?
Есть идеи?
Комментарии:
1. Привет, Эрик. Я могу представить, что многие вершины замедлят работу. Зачем вам так много? Возможно, есть другие варианты. b2LoopShape не входит в комплект поставки cocos2d. Я не знаком с этим, поэтому я не знаю, сколько работы потребуется для переноса этого.
2. Привет, Нэш! На самом деле сейчас она работает нормально, даже на моем iphone 3, но я не стал набирать 10000 вершин, я сократил ее до ~ 2000.
Ответ №1:
Для b2LoopShape вам необходимо заменить external / Box2d на Box2D trunk.
- оформить заказ на магистраль Box2D из box2d.
- замените cocos2d / external / Box2d на trunk / Box2D / Box2D.
- измените проект Xcode для добавления файлов Box2D.
- измените некоторые коды для переименованных классов, таких как s / b2DebugDraw / b2Draw/.