2015-03-30 69 views
0

所以我在現場一對夫婦的SKLabelNodes這樣的:我應該如何調整SpriteKit中的標籤節點?

SKLabelNode *label1 = [SKLabelNode labelNodeWithFontNamed:@"Arial"]; 
label1.text = @"Hello World!"; 
label1.fontColor = [SKColor redColor]; 
label1.fontSize = 90; 
label1.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)); 
[self addChild: label1]; 

當現場啓動,我希望他們擴大規模。我爲此使用了SKAction,但scaleBy導致文字模糊,並調整大小爲沒有奏效。

另外我猜這不是字體的方式。有沒有更好的方法來做到這一點,或者我應該使用UILabels?我不想那樣做,因爲那意味着我不能在其上使用SpriteKit物理,或者我可以嗎?

感謝

回答

-1

這是我對你的問題的建議。

  1. 我永遠不會縮放任何東西。遵循一般準則,如果你縮小規模,你通常會保持質量。擴大規模創造了像素藝術的感覺。

  2. 如果您不使用標籤節點來顯示頻繁更改的數字,請使用SKSpriteNode。使用一個基本的照片編輯器鍵入您的標籤,並將其保存爲您將分配給spritenode的圖像。 Spritenodes是用來處理物理的,所以你應該用它們來處理你所有的物理。

  3. 如果你確實需要顯示經常改變的大範圍數字,但你仍然需要它們受到物理學的影響,你可能會問自己,我是否應該創建一個圖像,我的精靈?答案是不。您可以將標籤尺寸設置爲比您需要的尺寸更大,並將其縮小。要處理物理,您可以將此標籤添加爲某個SKSpriteNode的子項,該SKSpriteNode具有您希望用於標籤的物理屬性。現在,你有一個spritenode可以與你想要的物理交互,但也有一個顯示你的信息的標籤節點。

+0

這很聰明......還有一件事:我不知道我是否瘋了,但是我可以以某種方式將UITextView製作成節點的子節點並讓它處理物理或者要求太多。我只是喜歡利用這些功能來更熟悉框架。謝謝 – Squid 2015-03-30 20:01:14

+0

我還沒有看到太多的人在同一視圖中集成spritekit和UIKit的示例或教程。我通常會盡量避免這種情況,因爲我相信蘋果是一家公司,並且會假設他們爲我們提供了更適合遊戲引擎環境的工具。更具體地說是指繪製圖形的容易度。這只是基於迄今爲止我看到的這種相當新的技術的推測。 – meisenman 2015-03-30 20:07:54

+0

雖然我沒有製作遊戲,但我正在製作一款具有類似遊戲功能的文本應用程序。我想瘋了。我會研究它 – Squid 2015-03-30 20:09:41

0

我跑從字體大小10 [SKAction scaleBy:至8的比例因子,你說得對文本由3以上的規模越來越大大小的時候是模糊的。

您可以使用塊來隨着時間增加字體大小。你將不得不使用很多步驟,但結果要好得多。

myInt = 10; 

SKAction *block0 = [SKAction runBlock:^{ 
    label0 = [SKLabelNode labelNodeWithFontNamed:@"Arial"]; 
    label0.text = @"Hello World!"; 
    label0.fontColor = [SKColor redColor]; 
    label0.fontSize = myInt; 
    label0.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)); 
    [self addChild: label0]; 
}]; 

SKAction *wait0 = [SKAction waitForDuration:1.5]; 

SKAction *wait1 = [SKAction waitForDuration:0.5]; 

SKAction *block1 = [SKAction runBlock:^{ 
    label0.fontSize += (myInt + 10); 
}]; 

[self runAction:[SKAction sequence:@[wait0, block0, wait1, block1, wait1, block1, wait1, block1, wait1, block1, wait1, block1]]]; 
+0

是啊,我忘了補充,但我這樣做太,我只是想知道如果有一個更快的方法 – Squid 2015-03-30 19:42:46

+0

@Squid - 隨着SKLabelNode你得到要麼規模或增加字體大小。 – sangony 2015-03-30 19:51:42

+0

是的,如果你不這麼做,它看起來很不穩定。 – Squid 2015-03-30 19:52:31

相關問題