1

我想知道我的代码有什么问题,它没有正确显示粒子。

在此处输入图像描述

这是预期的粒子

在此处输入图像描述

执行

physicsWorld.contactDelegate = self

    self.scene?.backgroundColor = UIColor.blackColor()

    self.scene?.size = CGSize(width: 640, height: 1136)

    self.addChild(SKEmitterNode(fileNamed: "MagicParticle")!)
4

2 回答 2

1

您应该首先尝试安全地解包粒子文件,以确保它不能为 nil

 if let particle = SKEmitterNode(fileNamed: "MagicParticle") {
    particle.position = ...
    addChild(particle)
 }

奇怪的是它不起作用,看着你的照片好像你没有错字。粒子效果里默认的 spark.png 改了吗?尝试清理您的项目,或者删除效果并重新创建它,如果它仍然不起作用

作为旁注,您可以删除这两个词

 scene?...

您已经在 SKScene 中,所以 self 就是场景,因此您可以说

 self.backgroundColor = ...
 self.size = ...

或更好

 backgroundColor = ...
 size = ...

作为 swift 中的一般良好编码实践,当编译器也强迫您时,尝试仅使用“self”。所以说

addChild(...)

代替

self.addChild(...)
于 2016-03-09T14:59:07.357 回答
0

我认为您还应该包括文件的扩展名,就像这样。

self.addChild(SKEmitterNode(fileNamed: "MagicParticle.sks")!)
于 2017-02-06T20:13:08.213 回答