내 현재 프로젝트에서 SpriteKit을 사용하여 다양한 시간에 독립적으로 크기를 조정할 필요가있는 여러 스프라이트가 있습니다. 문제는 노드의 크기를 조절할 때 물리 구조가 물리 구조에 맞지 않아 물리 구조가 엉망이된다는 것입니다.SKPhysicsBody 및 [SKNode setScale :]
CGSize objectSize = CGSizeMake(100, 100);
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0, 0, self.size.width, self.size.height)];
SKSpriteNode *n1 = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:objectSize];
n1.position = CGPointMake(self.size.width/2, 2*self.size.height/3);
n1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectSize];
n1.physicsBody.affectedByGravity = YES;
[self addChild:n1];
SKSpriteNode *n2 = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:objectSize];
n2.position = CGPointMake(self.size.width/2, self.size.height/3);
n2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectSize];
n2.physicsBody.affectedByGravity = YES;
[self addChild:n2];
[n1 setScale:0.5];
공지 사항 (축소) 파란색 스프라이트가 빨간 하나의 꼭대기에 앉아 어떻게하지만 당신은 여전히 물리학 본문을 알 수 있습니다 : 여기이 질문의 목적을 위해 함께 넣어 작은 예입니다 내가 말한 차원이 있으며, 규모가 조정되지 않았습니다.
분명히 노드를 축소해도 physicsBody가 축소되지는 않습니다. 그래서 내 질문은 수동으로해야한다면, 어떻게해야합니까?
스케일링 할 때 몸체를 올바른 크기로 바꾸려고 시도했지만, 오래된 몸체에 관절 등이 있으면 정말 복잡해졌습니다. 기존 몸체를 확장 할 수 있다면 훨씬 간단 할 것입니다. 어쩐지.
Box2D (SK에서 사용)의 몸체 크기 조정이 없습니다. – LearnCocos2D