swift - 我如何在 SpriteKit 中在我的角色后面留下痕迹?

标签 swift sprite-kit

我正在使用 SpriteKit(使用 Xcode 6 和 Swift),我在屏幕上有一个角色,我用屏幕上的操纵杆四处移动,我想在他身后留下一点痕迹。我该怎么做?

enter image description here

我的图像需要多大,它需要看起来像什么? 另外,我会在我的代码中使用什么?

最佳答案

你应该看看SKEmitterNode ;它会“发出”粒子,您可以将其用作踪迹。您可以通过在项目中添加“SpriteKit 粒子文件”来直接在 Xcode 中设计粒子的外观和感觉:

new particle file

然后将粒子文件加载到新的 SKEmitterNode 中,如下所示:

let emitter = SKEmitterNode(fileNamed: "CharacterParticle.sks")

然后您需要将 SKEmitterNodetargetNode 属性设置为您的 SKScene,这样它发射的粒子就不会移动与你的角色(即他们留下踪迹):

emitter.targetNode = scene

然后将您的发射器添加到角色的SKNode。假设您的角色有一个名为 characterSKNode,在这种情况下,代码将简单地为:

character.addChild(emitter)

通常这种事情会在场景的设置方法中完成(在 Apple 的 SpriteKit 模板中,它通常在 didMoveToView 中)。它也可以在您角色的自定义 SKNodeSKSpriteNode 类中完成,如果您有的话。如果你把它放在 didMoveToView 中,它看起来像这样:

override func didMoveToView(view: SKView) {
    // ... any character or other node setup ...

    let emitter = SKEmitterNode(fileNamed: "CharacterParticle.sks")
    emitter.targetNode = self
    character.addChild(emitter)

    // ... any other setup ...
}

关于swift - 我如何在 SpriteKit 中在我的角色后面留下痕迹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368830/

相关文章:

ios - 为什么prepare for segue不能快速发送图像?

ios - 在场景之间快速传递变量?

ios - arc4random 和 arm64 与 swift

swift - Firebase获取具有特定子键的所有对象

xcode - 从新的 Firebase(数据库)中检索数据

ios - XCode 对成员的不明确引用

ios - 对 TableView 的每个单元格的 Alamofire 请求

ios - Swift/SpriteKit - 何时使用多个 ViewController?

xcode - 实现平均分数 SpriteKit Swift

Swift:在 nstimer 倒计时结束时过渡到新的 View Controller