Вы работаете с Box2D 2.2.1, чей API изменился по сравнению с версией Box2D в Cocos2D v1.0.1 (использует Box2D v2.1.2). Я так понимаю, вы используете Cocos2D 2.0 alpha? Если это так, он предположительно поставляется с обновленными шаблонами проектов Xcode, так что вы можете установить их и создать проект на основе новых шаблонов.
Вот как я могу установить ограничивающий прямоугольник, используя тело с 4 фигурами, прикрепленными к нему:
// for the screenBorder body we'll need these values
CGSize screenSize = [CCDirector sharedDirector].winSize;
float widthInMeters = screenSize.width / PTM_RATIO;
float heightInMeters = screenSize.height / PTM_RATIO;
b2Vec2 lowerLeftCorner = b2Vec2(0, 0);
b2Vec2 lowerRightCorner = b2Vec2(widthInMeters, 0);
b2Vec2 upperLeftCorner = b2Vec2(0, heightInMeters);
b2Vec2 upperRightCorner = b2Vec2(widthInMeters, heightInMeters);
// Define the static container body, which will provide the collisions at screen borders.
b2BodyDef screenBorderDef;
screenBorderDef.position.Set(0, 0);
b2Body* screenBorderBody = world->CreateBody(&screenBorderDef);
b2EdgeShape screenBorderShape;
// Create fixtures for the four borders (the border shape is re-used)
screenBorderShape.Set(lowerLeftCorner, lowerRightCorner);
screenBorderBody->CreateFixture(&screenBorderShape, 0);
screenBorderShape.Set(lowerRightCorner, upperRightCorner);
screenBorderBody->CreateFixture(&screenBorderShape, 0);
screenBorderShape.Set(upperRightCorner, upperLeftCorner);
screenBorderBody->CreateFixture(&screenBorderShape, 0);
screenBorderShape.Set(upperLeftCorner, lowerLeftCorner);
screenBorderBody->CreateFixture(&screenBorderShape, 0);
В качестве альтернативы, получите Kobold2D Preview 5 (доступно к завтрашнему дню) и посмотрите на шаблонный проект Physics-Box2D. Я внес все необходимые изменения для запуска приложения Box2D v2.2.1, включая изменения, необходимые для класса отладочной графики Box2D. Я также размещаю последнюю версию Box2D API .