我如何創建SKLabelNode並設置它的寬度和高度。我曾經考慮過只用一個字來製作一個精靈圖像,然後定位這個精靈,但我不相信這是做這件事的最好方法。如何在Sprite工具包中創建方形SKLabelNode
圖片: http://i.imgur.com/dAP6yeT.png 謝謝!
我如何創建SKLabelNode並設置它的寬度和高度。我曾經考慮過只用一個字來製作一個精靈圖像,然後定位這個精靈,但我不相信這是做這件事的最好方法。如何在Sprite工具包中創建方形SKLabelNode
圖片: http://i.imgur.com/dAP6yeT.png 謝謝!
我認爲你所要求的最好的方式就是做你說的話。只要製作一個單詞的圖像。這使它可以用作你的按鈕。它可能會減去一些fps,但前提是你的場景中有大約50多個節點。這是不可能的,因爲大多數人在菜單上貼上標籤。但是如果你想調整SKLabelNode的大小,只需調整tex就可以了。 label.fontsize = 20
以下代碼將使用您提供的文本添加一個節點,並附帶一個框。邊框將是一個與文本大小相對應的矩形。如果你想把它放在正方形中,只需將borderPath
點調整爲僅使用labelNode.frame.size.width/2
來表示水平和垂直間距。將+/- 10調整爲所需文字周圍的間距量。
//create the wrapper node
float initialWidth = 50;
float initialHeight = 50;
SKSpriteNode *parentNode = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(initialWidth, initialHeight)];
//create the label node
NSString *FontName = [UIFont boldSystemFontOfSize:10].fontName;
SKLabelNode *labelNode = [SKLabelNode labelNodeWithFontNamed:FontName];
labelNode.text = @"some text";
labelNode.fontColor = [UIColor blackColor];
labelNode.position = CGPointMake(0, -labelNode.frame.size.height/4);
//create the border node
SKShapeNode *borderNode = [SKShapeNode new];
UIBezierPath* borderPath = [[UIBezierPath alloc] init];
[borderPath moveToPoint:CGPointMake(-labelNode.frame.size.width/2 -10, -labelNode.frame.size.height/2 -10)];
[borderPath addLineToPoint:CGPointMake(labelNode.frame.size.width/2 +10, -labelNode.frame.size.height/2 -10)];
[borderPath addLineToPoint:CGPointMake(labelNode.frame.size.width/2 +10, labelNode.frame.size.height/2 +10)];
[borderPath addLineToPoint:CGPointMake(-labelNode.frame.size.width/2 -10, labelNode.frame.size.height/2 +10)];
[borderPath addLineToPoint:CGPointMake(-labelNode.frame.size.width/2 -10, -labelNode.frame.size.height/2 -10)];
borderNode.path = borderPath.CGPath;
borderNode.lineWidth = 10.0;
[borderNode setStrokeColor:[UIColor blackColor]];
//add it all together and present it
[parentNode addChild:borderNode];
[parentNode addChild:labelNode];
parentNode.position = newShapeScenePoint;
parentNode.size = CGSizeMake(labelNode.frame.size.width +10, labelNode.frame.size.height +10);
[myScene addChild:parentNode];
您可以移動與
parentNode.position = CGPointMake(someNewX, someNewY)
與
float bigger = 3.0; //or whatever size you want
parentNode.xScale = bigger;
parentNode.yScale = bigger;
整個事情,您可以調整整個事情(包括文本),你可以說明你想達到什麼樣的效果呢? – CloakedEddy
SKLabelNode只顯示文本,所以它的寬度和高度是相對於它顯示的文本。使用精靈節點的想法可能是最好的選擇。 – MaxKargin