这是我的代码:
// setting background
_ground = [[SKSpriteNode alloc]
initWithColor:[SKColor greenColor]
size:CGSizeMake([Helpers landscapeScreenSize].width, 50)];
_ground.name = @"ground";
_ground.zPosition = 1;
_ground.anchorPoint = CGPointMake(0, 0);
_ground.position = CGPointMake(0, 0);
_ground.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake([Helpers landscapeScreenSize].width, 50)];
_ground.physicsBody.dynamic = NO;
_ground.physicsBody.affectedByGravity = NO;
_ground.physicsBody.categoryBitMask = groundCategory;
_ground.physicsBody.collisionBitMask = elementCategory;
_ground.physicsBody.contactTestBitMask = elementCategory;
绿色矩形定位没问题,但 SKPhysicsBody 没有正确表示这个矩形。看起来 SKPhysicsBody 没有根据精灵位置和锚点“移动”它的身体。SKPhysicsBody 向左移动 _ground.width 点。
我究竟做错了什么?
PS。更改为这个(代码)解决了我的问题,但我真的不喜欢这个解决方案,这似乎是一种丑陋的定位元素的方式。
_ground.position = CGPointMake([Helpers landscapeScreenSize].width / 2, 0);
+删除:
_ground.position = CGPointMake(0, 0);