我正在创建一个简单的 Sprite Kit 游戏,但是当我将 PhysicsBody 添加到我的一个精灵时,它似乎处于错误的位置。我知道它在我设置的错误位置,
skView.showsPhysics = YES;
并且它出现在错误的位置。
底角的正方形是第一个半圆的物理体。我现在使用正方形只是为了测试目的。
我的应用程序包括视图跟随并在移动时跟随我的主要精灵。我通过遵循苹果文档并创建一个“myworld”节点并从该节点创建所有其他节点来实现这一点。
myWorld = [SKNode node];
[self addChild:myWorld];
semicircle = [SKSpriteNode spriteNodeWithImageNamed:@"SEMICRICLE.png"];
semicircle.size = CGSizeMake(semicircle.frame.size.width/10, semicircle.frame.size.height/10);
semicircle.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:semicircle.frame.size];
semicircle.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
semicircle.physicsBody.dynamic = YES;
semicircle.physicsBody.collisionBitMask = 0;
semicircle.name = @"semicircle";
[myWorld addChild:semicircle];
为了以节点为中心,我调用这些方法
- (void)didSimulatePhysics
{
[self centerOnNode: [self childNodeWithName: @"//mainball"]];
}
- (void) centerOnNode: (SKNode *) node
{
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];
node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - cameraPositionInScene.y);
}
我不知道我的世界对 SkPhysics 的身体有什么影响……