目前我正在使用SpriteKit编写一个小应用程序,它工作得非常好,但唯一的问题是SKLabelNode,我使用以下正常代码初始化:
​self.scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"Futura"];
self.scoreLabel.fontSize = 190.0f;
self.scoreLabel.color = [SKColor whiteColor];
self.scoreLabel.alpha = .2;
self.scoreLabel.text = @"00";
self.scoreLabel.position = CGPointMake(screenWidth/2,self.scoreLabel.frame.size.height/2);
[self addChild:self.scoreLabel];

还有很多东西可以初始化,但它们不会影响任何东西.如果我注释掉上面的代码,应用程序会在平时加载.使用SKLabelNode,它可以将负载延迟几秒钟……

希望有人能帮助我.

解决方法

您需要预先加载字体,以便在第一次调用SKScene sprite套件时已经在内存中准备好了字体.执行此操作的最佳方法是在游戏生命周期中尽快使用应用程序委托或单身人士.
self.scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"Futura"];
self.scoreLabel.text = @"preload";

您不需要将标签设置为全局标签,只需确保您有一个强引用,让编译器知道您希望它将字体保留在内存中.另外,请确保设置text属性(仅在设置时加载字体).

编辑:

这就是我正在使用的:

- (void)setupFonts {
    SKLabelNode *preloadFontLabel = [SKLabelNode labelNodeWithFontNamed:@"HelveticaNeue-UltraLight"];
    [preloadFontLabel setText:@"Preload"];
}

这是从游戏开始时的游戏资产单身人员调用的,我也有一个回叫,停止在资产加载之前出现的“PLAY”按钮,这样用户就无法跳起枪直到所有内容都启动并加载.我的游戏资产只需要1.03秒即可加载所以它不是问题,但如果需要,您还可以在启动/启动屏幕后隐藏更长的负载.

如果你仍然看到问题,我会检查你的SKScene中没有任何其他字体,你没有预加载.此外,它可能是加载自定义字体的问题,尝试将字体更改为“HelveticaNeue-UltraLight”,看看你是否得到相同的问题.

ios – SKLabelNode延迟应用程序启动的更多相关文章

  1. ios – SKLabelNode延迟应用程序启动

    目前我正在使用SpriteKit编写一个小应用程序,它工作得非常好,但唯一的问题是SKLabelNode,我使用以下正常代码初始化:还有很多东西可以初始化,但它们不会影响任何东西.如果我注释掉上面的代码,应用程序会在平时加载.使用SKLabelNode,它可以将负载延迟几秒钟……

  2. Swift延迟加载的一种用途

    不可以在默认属性中来完成吗?本猫想了一会,于是有了如下代码:不幸的是,以上代码不能正确运行,因为其中的self并没有代表ViewController的实例对象.所以此路不通.所幸的是Swift为我们提供了一种延时加载属性的机制,我们可以这样写:很好很强大!需要注意的是lazy修饰的属性初始化代码只会被运行一次,无论你访问该属性多少次!

  3. 浅谈JavaScript 中的延迟加载属性模式

    改善性能的最好方法之一是避免重复两次相同的工作。因此,只要可以缓存结果供以后使用,就可以加快程序的速度。延迟加载属性模式技术使任何属性都可以成为缓存层以提高性能。这里说到的延迟加载属性模式就是利用的访问器属性,将计算昂贵的操作推迟到需要时再使用

  4. 关于Laravel Service Provider开发设置延迟加载时遇到的问题详解

    这篇文章主要给大家介绍了关于Laravel Service Provider开发设置延迟加载时遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。

  5. AngularJS延迟加载html template

    这篇文章主要介绍了AngularJS延迟加载html template 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  6. 一文读懂JavaScript 中的延迟加载属性模式

    开发人员在javascript类中为实例中需要的任何书籍创建属性,但是如果实例中可用之前需要计算某些数据该如何处理呢,今天小编通过本文给大家分享JavaScript 中的延迟加载属性模式,一起看看吧

  7. AngularJS使用ocLazyLoad实现js延迟加载

    这篇文章主要介绍了AngularJS使用ocLazyLoad实现js延迟加载的相关资料,需要的朋友可以参考下

  8. JavaScript延迟加载之async与defer的应用

    这篇文章主要介绍了JavaScript延迟加载之async与defer的应用场景与使用区别的介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  9. 网站性能延迟加载图像的五种技巧(小结)

    由于图片是web上最流行的内容类型之一,因此网站的页面加载时间很容易成为一个问题,在本文中您将学习有关延迟加载图像的五种方法,感兴趣的可以来了解一下

  10. js中延迟加载和预加载的具体使用

    这篇文章主要介绍了js中延迟加载和预加载的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部