Search code examples
objective-cios7sprite-kit

Insert line break using SKLabelNode in SpriteKit


Simple question on how to insert a line break using SKLabelNode class in SpriteKit. I have the following code but it does not work -

 SKLabelNode *nerdText = [SKLabelNode labelNodeWithFontNamed:@"Times"];
    NSString *st1 = @"Test break";
    NSString *st2 = @"I want it to break";
    NSString *test = [NSString stringWithFormat:@"%@,\r%@",st1,st2]; //Even tried \n
    nerdText.text = test;
    nerdText.fontSize = 11;
    nerdText.fontColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
    nerdText.position = CGPointMake(150.0, 250.0);
    [self addChild:nerdText];

Please help me out!


Solution

  • I dont think you can, here is a "hack" way to do it

    SKNode *nerdText = [SKNode node]; 
    SKLabelNode *a = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
    a.fontSize = 16;
    a.fontColor = [SKColor yellowColor];
    SKLabelNode *b = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
    b.fontSize = 16;
    b.fontColor = [SKColor yellowColor];
    NSString *st1 = @"Line 1";
    NSString *st2 = @"Line 2";
    b.position = CGPointMake(b.position.x, b.position.y - 20);
    a.text = st1;
    b.text = st2;
    [nerdText addChild:a];
    [nerdText addChild:b];
    nerdText.position = CGPointMake(150.0, 250.0);
    [self addChild:nerdText];