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

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


person sam    schedule 26.08.2011    source источник


Ответы (1)


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

person Kheldar    schedule 26.08.2011