0

我正在使用 cocos2d 创建一个游戏,我想为我的精灵设置一个边界,这样它就不会在 x 线上离开屏幕。我可以用什么代码来做到这一点。我不希望精灵向相反的方向反弹,我只是希望它停止。

4

1 回答 1

0

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 在边缘本身,这取决于您的移动精灵是否必须在其他东西上反弹。

于 2011-08-26T14:02:12.023 回答