Сбой Spritekit SKPhysicsBody на ios7 во время работы на ios8

#ios #objective-c #sprite-kit #skphysicsbody

#iOS #objective-c #sprite-kit #skphysicsbody

Вопрос:

У меня возникла странная проблема с SKPhysicsBody, я создал игру с ios8 sdk, но полностью совместим со старым ios7. Когда я пытаюсь выполнить это на ios7, я получил сбой с ошибкой.

 pathToDraw = CGPathCreateMutable();
CGPathMoveToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);
lineNode = [SKShapeNode node];
lineNode.path = pathToDraw;
lineNode.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:pathToDraw]; <<crashes here
  

ошибка:

 Assertion failed: (count >= 2), function CreateChain, file /SourceCache/PhysicsKit_Sim/PhysicsKit-6.5.4/PhysicsKit/Box2D/Collision/Shapes/b2ChainShape.cpp, line 45.
  

На iOS8 приложение работает отлично. Проблема возникает только на iOS 7

Ответ №1:

Ваш путь содержит только одну точку. Поскольку это сбой только в iOS 7, я бы предположил, что iOS 8 рассматривает это как особый случай и, предположительно, завершает путь, используя положение узла в качестве другой точки. Независимо от этого, если вы хотите сделать его совместимым с iOS 7, вам всегда придется создавать путь с двумя точками.