【问题标题】:Swift 2 SpriteKit issuesSwift 2 SpriteKit 问题
【发布时间】:2015-09-11 12:56:12
【问题描述】:

所以自从升级到 iOS 9 甚至升级到 Swift 2 之后,我的 spriteKit 游戏出现了一些问题。我在这里提到了 1 Atlas images wrong size on iPad iOS 9

但是,我还有 2 个无法解决的问题。

1)

我所有的粒子效果都不再起作用了。这是我使用的代码,它们不再显示了。如果我只使用 SKEmitterNode 就可以了,但我更喜欢将 SKEmitterNode 添加到 SKEffectNode 因为它与背景等融合得更好。 这是代码。

let particlesPath = NSBundle.mainBundle().pathForResource("Thrusters", ofType: "sks")!
let particles = NSKeyedUnarchiver.unarchiveObjectWithFile(particlesPath) as! SKEmitterNode
let particleEffects = SKEffectNode() //blends better with background when moving

particleEffects.zPosition = 20
particleEffects.position = CGPointMake(0, -50)
particleEffects.addChild(particles)

addChild(particleEffects)

我读过这个 http://forum.iphonedev.tv/t/10-8-skeffectnode-or-xcode-7-or-my-issue/669 它声称它已修复,但事实并非如此。

2)

当我登录或弹出成就时,我的 Game Center 横幅现在使用纵向横幅,即使我的游戏是横向的。因此,横幅仅覆盖顶部屏幕的一半。它看起来很糟糕,因为没有实际的横幅代码,我什至不知道从哪里开始。

其他人面临这些问题,这令人沮丧。 感谢您的任何帮助或支持。

【问题讨论】:

  • 我没有使用很多粒子,但我拥有的那些都可以正常工作。也遇到了一些 GC 错误,但我不确定这是否是由于 ios9
  • 是的,粒子问题只有在将 SKEmitterNode 添加到 SKEffectNode 时才会发生。我假设在你的情况下你没有这样做。你能解释一下你遇到了什么类型的 GC 错误吗?我有 1 个横幅错误吗?
  • 我通过从我的测试设备中手动删除所有基于回合的待处理匹配来解决了这个问题。比赛表现不正确,状态和参与者信息有误。
  • 很公平。你的游戏是横向的吗?如果是这样,你的横幅也搞砸了吗?
  • 我找到了导致我的 SKEmitterNodes 无法渲染的原因。我没有在我的所有 SKSpriteNodes 或 EmitterNodes 上设置 Z 位置。我的背景是我添加的第一个孩子,然后是所有内容。在 iOS 9 中,有时背景会渲染在我的其余节点之上,但它总是渲染在我的 SKEmitterNodes 之上。一旦我将背景更改为 z -1,它就解决了我的问题。

标签: swift2


【解决方案1】:

对这个老问题的一些更新。信不信由你,关于粒子,苹果最近回复了我 1 岁的 BugReport,看看它是否在 iOS 10 中得到修复。哈哈

我听说通过 SKEffectNode 方式渲染粒子在性能方面不一定是理想的,我不再使用它了。因此,我不确定该错误是否仍然存在于后来的 Xcode 和 iOS 9 更新或 iOS 10 测试版中。

关于 adMob 横幅,我只需要更改

let adMobBannerAdView = GADBannerView()

var adMobBannerAdView: GADBannerView?

并延迟初始化直到 ViewDidLoad/DidMoveToView。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    相关资源
    最近更新 更多