【发布时间】:2013-12-06 01:27:21
【问题描述】:
尝试在我的 iOS7 Sprite 套件项目中设置物理世界时收到以下错误。
Assertion failed: (count >= 3), function CreateLoop, file /SourceCache/PhysicsKit/PhysicsKit-4.6/PhysicsKit/Box2D/Collision/Shapes/b2ChainShape.cpp, line 35.
奇怪的是,在我向项目中添加新场景之前,我使用的代码可以正常工作。我将我的项目恢复到它正确运行的最后一个已知时间,但它仍然无法正常工作。一旦我移除物理世界,该项目就会建立。
(SKNode*) myWorld = [SKNode node];
[self addChild:myWorld];
map = [SKSpriteNode spriteNodeWithImageNamed:@"background1"];
map.position = CGPointMake(0.0, 0.0);
[myWorld addChild:map];
//Setup physics
self.physicsWorld.gravity = CGVectorMake(0.0, 0.5);
self.physicsWorld.contactDelegate = self;
CGRect worldFrame = CGRectMake(map.frame.origin.x, map.frame.origin.y-1150, map.frame.size.width, map.frame.size.height + 2000);
myWorld.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:map.frame];
myWorld.physicsBody.categoryBitMask = wallCategory;
程序在尝试执行时终止……
myWorld.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:map.frame];
如果我把这段代码放到一个新项目中,它工作得很好。对我的项目发生了什么以及如何解决它有任何想法?
【问题讨论】:
-
为 NSException 添加符号断点,看看它为什么会终止。此外,在崩溃的行添加断点并查看您创建的所有对象的值。如果您不使用它,为什么要创建 worldFrame?
标签: ios7 sprite-kit skphysicsbody