0
지도를 통해 날아갈 때 내 주인공 (헬리콥터 조종사)을 따라 centerOnNode 방법을 사용 했으므로 이동하지 않는 HUD를 점으로 배치 할 수있는 가능성을 생각할 수 없습니다 화면 위쪽에 최고점이 표시됩니다.Sprite Kit에 정적 HUD를 만들 수 없습니다
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
SKNode *myWorld = [SKNode node];
self.currentMyWorld = myWorld;
[self addChild:myWorld];
SKLabelNode *score = [SKLabelNode labelNodeWithFontNamed:@"Verdana-BoldItalic"];
score.fontSize = 25;
score.fontColor = [SKColor yellowColor];
score.zPosition = 4;
self.pointHUD = score;
[myWorld addChild:score];
}
return self;
}
#pragma mark - didSimulatePhysics
- (void)didSimulatePhysics
{
[self centerOnNode: [self childNodeWithName: @"//pilot"]];
}
- (void) centerOnNode: (SKNode *) node
{
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position
fromNode:node.parent];
if (self.currentPilot.position.x < -400 && self.currentPilot.position.y > -400 && self.currentPilot.y < 400){node.parent.position = CGPointMake(400, node.parent.position.y - cameraPositionInScene.y);
}else if (self.currentPilot.position.x < -400 && self.currentPilot.position.y < -400){node.parent.position = CGPointMake(400, 400);
}else if (self.currentPilot.position.x < -400 && self.currentPilot.position.y > 400){node.parent.position = CGPointMake(400, -400);
}else if (self.currentPilot.position.x > 400 && self.currentPilot.position.y < -400){node.parent.position = CGPointMake(-400, 400);
}else if (self.currentPilot.position.x >400 && self.currentPilot.position.y > 400){node.parent.position = CGPointMake(-400, -400);
}else if ((self.currentPilot.position.x > -400 && currentPilot.position.y < -400) || (self.currentPilot.x < 400 && self.currentPilot.y < -400))
{node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x,400);
}else if ((self.currentPilot.position.x > -400 && self.currentPilot.position.y > 400) || (self.currentPilot.position.x < 400 && self.currentPilot.position.y > 400))
{node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x,-400);
}else if (self.currentPilot.position.x > 400 && self.currentPilot.position.y > -400 && self.currentPilot.position.y < 400){node.parent.position = CGPointMake(-393, node.parent.position.y - cameraPositionInScene.y);
}else if (self.currentPilot.position.x > -400 && self.currentPilot.position.y < 400 && self.currentPilot.position.y > -400 && self.currentPilot.position.y < 400){node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x,node.parent.position.y - cameraPositionInScene.y);
}
}