Утверждение Sprite Kit не подтверждено: (typeA == b2_dynamicBody || typeB == b2_dynamicBody)
Это спросилиранее, но первоначальному спрашивающему не нужно было менять динамическое свойство, поэтому он ответил на свой вопрос, задав его.
Я использую Sprite Kit в iOS7, и я хотел бы иметь возможность изменять динамическое свойство SKPhysicsBody во время выполнения. Первоначально я менял это в своих прикосновениях Beg: метод. Кто-то на форуме Apple Dev предложил перенести изменение в метод didSimulatePhysics:, но это тоже не помогло.
Этот код вызывает ошибку:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (!heyWereSwappingDynamismHere)
{
heyWereSwappingDynamismHere = YES;
SKNode * rope = [self childNodeWithName:@"rope"];
SKNode * anchor = [rope childNodeWithName:@"anchor"];
[listOfObjectsToSwapDynamic addObject:anchor];
}
}
-(void) didSimulatePhysics
{
if (heyWereSwappingDynamismHere)
{
for (SKNode * node in listOfObjectsToSwapDynamic)
{
bool isItDynamic = node.physicsBody.isDynamic;
node.physicsBody.dynamic = !isItDynamic;
}
[listOfObjectsToSwapDynamic removeAllObjects];
heyWereSwappingDynamismHere = NO;
}
}
Ошибка, появляющаяся в отладчике:
Ошибка подтверждения: (typeA == b2_dynamicBody || typeB == b2_dynamicBody), функция SolveTOI, файл /SourceCache/PhysicsKit/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/b2World.cpp, строка 670.
Я смотрел в другом месте, но это, кажется, проблема с реализацией (и охватом) Sprite Kit Box2D.
Может быть?