Tag: sklabelnode

SpriteKit:有没有办法根据SKLabelNode的基线来居中

标签有四种不同的verticalAlignmentMode : .Baseline , .Bottom , .Center和.Top 。 我希望标签能够根据其基准位于其位置上。 .Center对我来说不起作用,因为帧的底部不是文本的底线,而是最底部的字母(比如'y')。 我也尝试使用.Baseline并从y位置减去框架高度的一半,但这也不起作用,并导致与.Center相同的问题。 我试图集中的标签中的文字是“Play!”。 将模式设置为“.Center”会使文本稍微高于我想要的值,这很明显。 将文本更改为“Pla!” 修复了这个问题,因为'y'被删除,没有任何字符挂在基线之下(尽pipe我明显不能这样做)。 我想build议一个解决这个问题的方法 – 也许有一些方法来获得基线的位置? 谢谢!

SKAction.colorizeWithColor使SKLabelNode消失

我正在使用SKLabelNode。 我创build它并将其添加到我的场景作为一个孩子,它显示没有问题,但是当我尝试改变它的颜色(而不是fontColor)与colorizeWithColor()方法标签淡出。 这里是问题的线路: myLabel.runAction(SKAction.colorizeWithColor(SKColor.blueColor(), colorBlendFactor: 1.0, duration: duration)) 在完成这个动作之后,我打印到控制台的myLabel.color属性,这里是我得到的: Optional(UIDeviceRGBColorSpace 0.99178 0.99178 1 0.00822043) 正如你所看到的,alpha值几乎为0,所以我想这就是标签消失的原因,但我不明白为什么会发生这种情况。 提前致谢。 更新:好吧,所以我发现其实这是我的不好,我没有搜查之前问。 这是关于colorizeWithColor方法的文档: 此操作只能由SKSpriteNode对象执行。 当动作执行时,精灵的颜色和colorBlendFactor属性被设置为新的值。 所以也许任何人都知道一个很好的解决方法,为一个永远在更新的SKLabelNode着色。 !!!最后更新!!! 我find了一个解决scheme,但是0x141E提出了一个更好的解决scheme,我使用了这个解决scheme,并且创build了下一个方法,当你需要从A颜色转换到B颜色时,这个方法非常好。在0x141Ebuild议的解决scheme中,回到fontColor,当你改变颜色时它会闪烁。 在我的情况下,它改变了fontColor,而不是颜色属性,这导致了一个非常漂亮的过渡(当然不是很好)。 再次感谢0x141E的真正好方法! 这是我的解决scheme: 当你为参数调用方法的时候,这个特殊情况很好,但是如果你需要其他的时间,你可以使用发送的withDuration参数或者乘数,在我的代码中是5,即使当然也应该更好解决scheme,所以如果你觉得请分享。 为了我的需要,这个工作太棒了。 首先是一个video,所以你可以看到它是如何工作的: https : //www.youtube.com/watch?v=ZIz8Bn0-hUA&feature=youtu.be func changeColorForLabelNode(labelNode: SKLabelNode, toColor: SKColor, withDuration: NSTimeInterval) { labelNode.runAction(SKAction.customActionWithDuration(withDuration, actionBlock: { node, elapsedTime in let label = node as SKLabelNode let toColorComponents = […]

swift 2 sprite-kit中的多行标签?

我需要能够在swift 2 sprite-kit中为游戏制作多行标签。 文本需要环绕而不是离开屏幕。 贝娄是我有,但我不知道该怎么做 import Foundation import UIKit import SpriteKit class JDQuotes: SKLabelNode { var number = 0 init(num: Int) { super.init() if num == 1 { text = "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. laborum.\"" } } required init?(coder aDecoder: […]

将自定义“数字”图像添加到SKLabelNode中,作为使用Swift的SpriteKit分数

我基本上想要在单曲中添加自定义字体编号(与图像),并添加他们为我的比赛与SpriteKit我的比分。 这是字体图像风格 他们是从0到9的数字 我一直在试图弄清楚这一点。 我不确定是否可以将它添加到SKLabelNode中,或者是否需要在课堂上完成。

SKLabelNode会消失,但仍然是可点击的

我正在使用SpriteKit和Swift制作游戏,运行Xcode 6.我有一个SKLabelNode ,在这个例子中我们称之为myLabelNode 。 当我调用myLabelNode.removeFromParent()它会从场景中删除节点,因为它应该。 节点数量下降1,并且在屏幕上的任何地方都不可见。 但是,当我点击myLabelNode以前的位置时,我的程序仍然会调出只有在触摸myLabelNode时才会发生的function。 我也尝试将myLabelNode.removeFromParent()与myLabelNode.hidden = true结合起来,但它仍然是可触摸的,即使它不应该调用该函数。 我应该如何解决这个问题? 我应该使用不同的方法吗? 这是否应该发生? 编辑: let lemonadeLabel = SKLabelNode(fontNamed: "Optima-ExtraBlack") override func didMoveToView(view: SKView) { lemonadeLabel.text = "Lemonade Stand" lemonadeLabel.fontSize = 24 lemonadeLabel.fontColor = SKColor.yellowColor() lemonadeLabel.position = CGPoint(x: size.width/2, y: size.height*0.66) lemonadeLabel.zPosition = 2.0 addChild(lemonadeLabel) } override func touchesEnded(touches: NSSet, withEvent event: UIEvent) { let touch […]

如何caching或预加载SKLabelNode字体?

我正在做一个Sprite Kit应用程序,在我的场景中,我添加了一个SKLabelNode。 当我加载SKScene时,我注意到了一个相当大的滞后尖峰。 在分析应用程序后,我发现它来自创build一个带有纸莎草字体的SKLabelNode(尽pipe字体无关紧要)。 当我删除标签时,场景几乎立即启动,但标签需要额外的1-3秒。 我很确定这是从加载字体,因为当我回到主菜单,再次玩游戏,它立即再次启动。 现在有一种方法可以提前预加载字体,所以当玩家select这个级别的时候没有很大的停顿。