精灵套件游戏中的得分系统

时间:2014-03-29 21:51:19

标签: ios iphone ios7 sprite-kit

我正在用精灵套装制作一个游戏,其中一个球落在一个人身上,我需要添加一个标签,每当球击中该男子时,该标签就会计数。我有联系部分排序,但我有点困惑,如何做标签,并使其数量。 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)))
        {

        }
    }
}

2 个答案:

答案 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,horizo​​ntalAlignmentMode和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];
    }