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;

または、移動するスプライトが他のものに跳ね返る必要があるかどうかに応じて、エッジ自体にそれを適用します。

于 2011-08-26T14:02:12.023 に答える