通过关注this tutorial,我可以使用cocos2d 版本3 进行跟踪。
这是非常基本的。在应用的CCScene
中,我们创建了一个世界:
_physicsWorld = [CCPhysicsNode node];
_physicsWorld.gravity = ccp(0,-100);
_physicsWorld.debugDraw = YES;
[self addChild:_physicsWorld];
然后用身体添加一个主角精灵。
_protagonist = [CCSprite spriteWithImageNamed:@"player.png"];
_protagonist.position = ccp(self.contentSize.width/2, self.contentSize.height/2);
_protagonist.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, _protagonist.contentSize} cornerRadius:0];
[_physicsWorld addChild:_protagonist];
现在,这是我的问题。主角精灵掉落是因为有{0; -100}重力矢量。但是,它永远不会停止。所以它会从屏幕上消失,永远不会被再次看到。
这是正常的,我明白了。
所以我试图用4 CCPhysicNode
创建一个世界边界框。例如,最重要的一个atm,阻止主角落下的底线:
CCPhysicsNode* bottom = [CCPhysicsNode node];
bottom.contentSize = CGSizeMake(self.contentSize.width, 20);
bottom.position = ccp(0, self.contentSize.height);
bottom.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, bottom.contentSize} cornerRadius:0];
[_physicsWorld addChild:bottom];
据我了解cocos2d的chipmunk集成,这应该是:
collisionGroup
?) 屏幕上发生了什么:没有。是的,debugDraw=true
,没有任何内容。主角精灵不断下降,就像甘道夫一样,但是它的厄运却是y
无限远(甚至超越!)的深渊。
要改写一下,添加bottom CCPhysicsNode
并不会改变一件事。
帮助!
非常感谢回报。
答案 0 :(得分:0)
CCPhysicsNode只是一个世界容器,可以容纳游戏中的所有物理对象。不要为每个物理对象创建一个新的。而是创建一个CCNode并附加其物理主体。然后将新的CCNode添加到CCPhysicsNode。换句话说,您的代码看起来没问题,除了第一行应该是:
CCNode* bottom= [CCNode node];