首页 > 解决方案 > SKEmitterNode:如何随机开始/停止下雨?

问题描述

我在游戏中添加了雨作为 SKEmitterNode 粒子,我希望它在随机时间显示。我应该使用什么样的功能?

以防万一,我的下雨代码:

函数开始游戏(){

    if let rain = SKEmitterNode(fileNamed: "rain.sks") {
        rain.position = CGPoint(x: frame.width, y: frame.height)
        addChild(rain)
    }

……

标签: sprite-kitskemitternode

解决方案


您可以使用一个动作在随机时间去除雨水,例如:

if let rain = SKEmitterNode(fileNamed: "rain.sks") {
    rain.position = CGPoint(x: frame.width, y: frame.height)
    addChild(rain)
    let waitAction = SKAction.wait(forDuration: Double.random(in: 10.0 ... 50.0))
    let removeAction = SKAction.removeFromParent()
    rain.run(SKAction.sequence([waitAction, removeAction]))
}

推荐阅读