Използвайки 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