1

私のコードの何が問題なのだろうか、粒子が正しく表示されません。

ここに画像の説明を入力

そして、これが予想される粒子です

ここに画像の説明を入力

実装

physicalsworld.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 を変更しましたか? プロジェクトのクリーニングを試すか、エフェクトを削除して、それでも機能しない場合は再度作成してください

ちなみに、2つの単語を削除できます

 scene?...

あなたはすでに SKScene にいるので、self がシーンなので、次のように言えます。

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

またはそれ以上

 backgroundColor = ...
 size = ...

Swift での一般的な適切なコーディング プラクティスとして、コンパイラが強制する場合は "self" のみを使用するようにしてください。だから、言って

addChild(...)

それ以外の

self.addChild(...)
于 2016-03-09T14:59:07.357 に答える