Используя Cocos2d мне нужно установить границы спрайта, чтобы он не мог выйти за пределы экрана, как мне это сделать? - PullRequest
0 голосов
/ 26 августа 2011

Я использую cocos2d для создания игры, и я хочу установить свой спрайт так, чтобы он не мог исчезнуть с экрана по линии x. Какой код я могу использовать для этого. Я не хочу, чтобы спрайт возвращался в противоположном направлении, я просто хочу, чтобы он прекратился.

1 Ответ

0 голосов
/ 26 августа 2011

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 на самом краю, в зависимости от того, должен ли ваш движущийся спрайт подпрыгивать на других вещах или нет.

...