我看到this question,但它没有明确解决问题,也不是完全一样。我试图简单地添加带有一些文本的SKLabelNode。我从来没有遇到过问题,但出于某种原因,这种情况正在发生: 这是我用来生成节点的代码:
var announceLabel = SKLabelNode(fontNamed: "Baskerville")
announceLabel.text = "ERROR LOADING ANNOUNCEMENT"
announceLabel.fontColor = UIColor.blackColor()
announceLabel.fontSize = 200
announceLabel.setScale(twitterButton.frame.height / announceLabel.frame.height)
announceLabel.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(announceLabel)
我正在iPhone 6上测试这个,我在创建标签节点时从未发生过这种情况。我尝试了不同的字体,位置和比例,但没有效果。任何帮助是极大的赞赏!谢谢!
答案 0 :(得分:0)
刚刚测试了一些,我找到了答案。字体太大了,我猜想SpriteKit会出错。我将字体大小更改为50并且工作正常(我在其他标签节点上使用了字体大小200并且从未遇到过问题):
var announceLabel = SKLabelNode(fontNamed: "Baskerville")
announceLabel.text = "ERROR LOADING ANNOUNCEMENT"
announceLabel.fontColor = UIColor.blackColor()
announceLabel.fontSize = 50
announceLabel.setScale(twitterButton.frame.height / announceLabel.frame.height)
announceLabel.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(announceLabel)
答案 1 :(得分:0)
两年半之后,我遇到了同样的问题。看起来当SKLableNode的宽度超过一定大小时,它只显示为黑色矩形。我做了一个快速的二分搜索,发现不好的大小是在2038年和2054年之间,所以我会在这里走出去,说截止时间是2048.我猜这是SpriteKit中的一个错误?我没有看到任何关于它的文件......
解决方法:
答案 2 :(得分:0)
我从未来来给您带来一些休假。 在2018年,大型SKLabelNodes仍然存在相同的问题。
现在,许多Apple设备都使用@ 3x资产,而且很明显,Simulator吸收了大量的@ 3x图像,并将其显示为黑色的矩形/正方形。需要明确的是:此错误仅限于模拟设备上的高分辨率图像。
它也影响SKLabelNodes,因为它的工作方式。在显示之前,SKLabelNode将文本渲染为高分辨率图像。将其呈现为高分辨率图像是有意义的,因为文本的可读性需要细节,还需要缩放。
因此,如果选择足够大的字体会让您遇到同样的麻烦,可以肯定地说模拟器@ 3x渲染过程需要一些调试。