http://www.raywenderlich.com/475/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-12 объясняет, как устанавливать границы.
беззастенчиво вставленный код:
// Create edges around the entire screen
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0,0);
_groundBody = _world->CreateBody(&groundBodyDef);
b2PolygonShape groundBox;
b2FixtureDef groundBoxDef;
groundBoxDef.shape = &groundBox;
groundBox.SetAsEdge(b2Vec2(0,0), b2Vec2(winSize.width/PTM_RATIO, 0));
_bottomFixture = _groundBody->CreateFixture(&groundBoxDef);
Последняя строка setAsEdge устанавливает край: D
Однако, если вы не хотите прыгать, вы можете установить свой движущийся спрайт на
spriteDef.restitution = 0f;
или d на самом краю, в зависимости от того, должен ли ваш движущийся спрайт подпрыгивать на других вещах или нет.