使用Cocos2d我需要设置一个精灵边界,所以它不能离开屏幕,我该怎么做?

时间:2011-08-26 13:59:09

标签: xcode cocos2d-iphone sprite boundary

即时通讯使用cocos2d创建一个游戏,我想设置我的精灵一个边界,以便它不能离开x线上的屏幕。我可以使用什么代码来执行此操作。我不希望精灵在相反的方向上反弹,我只想让它停下来。

1 个答案:

答案 0 :(得分: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在边缘本身,取决于你的移动精灵是否必须在其他东西上反弹。