Ios 调用SKLabelNode时延迟?
从一个Ios 调用SKLabelNode时延迟?,ios,sprite-kit,skscene,sklabelnode,Ios,Sprite Kit,Skscene,Sklabelnode,从一个SKScene转换到另一个时,我遇到了一个稍微延迟(滞后)的问题。通过注释不同的代码位,我将其缩小为SKLabelNode,我猜这是它在调用时加载/缓存字体,这会导致在陈述新的SKScene时出现小的延迟/结巴 其他人是否注意到了这一点,当您仅使用单个SKScene(如默认模板)时,这一点就不那么明显了,因为通常的启动延迟会导致减速。有人知道如何解决这个问题吗?有没有办法预加载字体?我想我可以在启动时将字体加载到UIViewController上,看看是否可以使用SKScene访问它,有什
SKScene
转换到另一个时,我遇到了一个稍微延迟(滞后)的问题。通过注释不同的代码位,我将其缩小为SKLabelNode
,我猜这是它在调用时加载/缓存字体,这会导致在陈述新的SKScene
时出现小的延迟/结巴
其他人是否注意到了这一点,当您仅使用单个SKScene
(如默认模板)时,这一点就不那么明显了,因为通常的启动延迟会导致减速。有人知道如何解决这个问题吗?有没有办法预加载字体?我想我可以在启动时将字体加载到UIViewController
上,看看是否可以使用SKScene
访问它,有什么想法吗
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
[self setScore:0];
[self setBackgroundColor:[SKColor blackColor]];
SKLabelNode *labelNode = [SKLabelNode labelNodeWithFontNamed:@"System"];
[labelNode setText:@"00000"];
[labelNode setFontSize:20.0];
[labelNode setPosition:CGPointMake(CGRectGetMidX(self.frame),500)];
[labelNode setName:@"SCORE"];
[labelNode setAlpha:1.0];
[self addChild:labelNode];
[self setScoreLabel:labelNode];
...
通常的预加载技巧是在应用程序委托中创建资产的“虚拟”版本,该版本应在运行时有效地在您的案例中缓存自定义字体。这也将有助于查明这是否是真正的问题-在Sprite Kit中,有许多方法很难有效地追踪口吃。我在SKScene渲染中遇到延迟,因为我使用多个UIViewController在我的应用程序中导航,而不是使用一个视图为斯科维尤;找到了答案。当我重构代码以使用单个UIViewController时,场景之间的转换就变得无缝了
如果这不是您的问题,也许您可以在视图加载时实例化场景,并在转换和呈现场景之前对场景内容进行任何更新 延迟取决于字体的加载。最好预先加载字体、声音和任何其他您打算使用的资源,这样在第一次实际使用时就不会有延迟
您可以在安装程序中预加载:
SKLabelNode *preload = [SKLabelNode labelNodeWithFontNamed:@"System"];
[preload setText:@"anything"];
如评论中所述,只有在使用iOS无法使用的字体时才需要预加载 我注意到的一件事是,如果在创建SKLabelNode时不使用“真实”的字体名称,就会出现您提到的延迟。由于“System”不是实际的字体名称,因此您正在经历延迟。尝试选择系统列出的一种实际字体。(例如,尝试使用“HelveticaNeue”而不是“System”。我在“AppDelegate.m”中添加了此方法:
并宣布:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self setupFonts];
return YES;
}
应用程序的加载速度没有变慢,而且在整个应用程序中工作得完美无缺。
在这里找到答案:小心不要加载整个字体系列。
如果我加载“黑板SE”,它将需要4-6秒,并且似乎可以工作
但如果我定期加载黑板,它几乎是瞬时的,大约100ms或更少
以下是您应该使用的实际字体名称列表:
学术旅行计划
阿尔尼奥尔德
阿尔尼罗
美国打字机之光
美国打字机聚光灯
美国打字机压缩版
美国打字员
美国打字机
美国打字机黑体字
苹果色墨汁
苹果果酱
ApplesdGothicno超轻
ApplesdGothicno半黑体
Appledgothicno培养基
appledgothicno正则
ApplesdGothicno Bold
ApplesdGothicno灯光
阿里亚尔姆特
Arial粗体斜体
Arial斜体
Arial黑体字
阿里亚赫布鲁黑体
阿里亚尔韦布光
阿里亚尔赫布鲁
阿里亚尔oundedtbold
阿维尼重型
阿韦尼斜肌
阿维尼黑
阿维尼书
艾维尼布莱克酒店
阿维尼重型飞机
艾文耐尔灯
中斜角大道
阿维尼培养基
阿维尼灯塔
阿维尼罗马酒店
阿韦尼图书公司
下一代医疗大道
下一个黑体
AvenirNext超轻
埃文尼尔内克德米博尔德酒店
下一代重型塔利克大道
下一代重型飞机
AvenirNext培养基
AvenirNext斜体
AvenirNext超轻斜体
AvenirNext粗体斜体
下一个常规
AvenirNext DemiBoldItalic
AvenurNextCondensed正则表达式
AvenirNextCondensed Mediumitarial
AvnerNextCondensed UltraLightItalic
AvinerNextCondensed超轻
AvenurNextCondensed粗体斜体
AVENIRNEXT浓缩斜体
AVENIRNEXT浓缩培养基
AvenirNextCondensed重型塔利克
AvinerNextCondensed重型卡车
AvenurNextCondensed半黑体斜体
AvenurNextCondensed DemiBold
AvenurNextCondensed Bold
孟加拉国
孟加拉国黑体
巴斯克维尔博尔德酒店
巴斯克维尔半黑体
巴斯克维尔黑体字
巴斯克维尔
巴斯克维尔半博尔德酒店
巴斯克维尔斜体
Bodonisvtytwotitctt手册
Bodonisvtytwotitctt粗体
博多尼斯维特布基塔酒店
Bodonisvtytwositt BookIt
BodonisvtyTwositCtt粗体
博多尼斯维特书
博多尼斯维特两本科学书
博多尼奥纳门西特酒店
布拉德利黑体
黑板灯
普通黑板
黑板粗体
粉碎机
科钦黑体
科钦黑体字
科钦斜体
科钦
铜版
铜板灯
铜版粗体
信使
信使斜线
信使
粗体信使
快递员
信使
速递员
信使黑体字
大马士革黑体
大马士革
大马士革之光
大马士革媒体
大马士革黑体
德瓦那加里桑加曼
德瓦那加里桑加曼黑体
不大胆
斜体字
没有
迪恩黑体
丁诺德
幼发声带
豪迈
斜体委婉语
法拉
Futura中型
富图拉浓缩培养基
富图拉医疗
富图拉酒店
吉扎普波尔德酒店
吉扎普
乔治亚博尔迪特
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self setupFonts];
return YES;
}