我正在用精灵套装制作一个游戏,其中一个球落在一个人身上,我需要添加一个标签,每当球击中该男子时,该标签就会计数。我有联系部分排序,但我有点困惑,如何做标签,并使其数量。 GG
- (void)didBeginContact:(SKPhysicsContact *)contact
{
SKSpriteNode *firstNode, *secondNode;
firstNode = (SKSpriteNode *)contact.bodyA.node;
secondNode = (SKSpriteNode *)contact.bodyB.node;
if ((contact.bodyA.categoryBitMask == manCategory)
&& (contact.bodyB.categoryBitMask == pooCategory))
{
CGPoint contactPoint = contact.contactPoint;
float contact_y = contactPoint.y;
float target_y = secondNode.position.y;
float margin = secondNode.frame.size.height/2 - 25;
if ((contact_y > (target_y - margin)) &&
(contact_y < (target_y + margin)))
{
}
}
}
答案 0 :(得分:3)
虽然你绝对仍然可以使用UILabel和UIButtons作为spriteKit,但他们似乎希望你使用SKLabelNode。
如何完全设置SKLabelNode的示例可能如下所示:
@property SKLabelNode* deathLabel;
然后
deathLabel = [SKLabelNode labelNodeWithFontNamed:@"CoolveticaRg-Regular"];
deathLabel.fontSize = 16;
deathLabel.text = [NSString stringWithFormat:@"%d Deaths",deaths];
deathLabel.position = CGPointMake(self.size.width/2,labelHeight);
deathLabel.fontColor = [SKColor whiteColor];
deathLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeRight;
[hudLayer addChild:deathLabel];
然后当你需要更新它时,只需重复一行:
deathLabel.text = [NSString stringWithFormat:@"%d Deaths",deaths];
一个奇怪的是我注意到SKLabelNodes默认使用上次使用的任何字体,fontSize,fontColor,horizontalAlignmentMode和verticalAlignmentMode,这在方便和令人沮丧之间,取决于你想要的标签多么多样。
答案 1 :(得分:0)
试试这个
制作UILabel财产......
@property (nonatomic, strong) UILabel *coreLabel;
构建它......
scoreLabel = [[UILabel alloc]initWithFrame:CGRectMake(...)];
scoreLabel.text = @"0";
[self.view addSubview:scoreLabel];
...
更新UIlabel ...
if ((contact_y > (target_y - margin)) && (contact_y < (target_y + margin)))
{
int temp = [scoreLabel intValue];
temp += 1;
scoreLabel.text = [NSString stringWithFormat:@"%i", temp];
}