与烟雾或灰尘 IOS 碰撞对象



我已经为UILabel添加了反弹效果,但我想在它到达边界底部时添加扩展效果。有谁知道如何添加最后一个效果。

以防万一,我通过创建自定义 SKScene 来解决此问题:

类 我的场景: SKScene {

override init(size: CGSize) {
    super.init(size: size)
    self.backgroundColor = SKColor(red: 0.15, green: 0.15, blue: 0.3, alpha: 1)
    let sklbl: SKLabelNode = SKLabelNode(fontNamed: "Chalkduster")
    sklbl.text = "hello world !!"
    sklbl.fontSize = 30
    sklbl.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
    self.addChild(sklbl)
    //return self
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
func newExplosion (posX:CGFloat, posY:CGFloat) -> SKEmitterNode {
    let path = NSBundle.mainBundle().pathForResource("MyParticle", ofType: "sks")
    let emitter: SKEmitterNode = NSKeyedUnarchiver.unarchiveObjectWithFile(path!) as! SKEmitterNode
    emitter.position = CGPointMake (posX,posY)
    emitter.name = "explosion"
    emitter.targetNode = self.scene
    emitter.numParticlesToEmit = 1000
    emitter.zPosition = 2.0
    return emitter
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for ( index, t ) in touches.enumerate() {
        let p:CGPoint = t.locationInNode(self)
        self.addChild(self.newExplosion(p.x, posY: p.y))
    }
}
override func update(currentTime: NSTimeInterval) {
    /* S e llama antes de que cada frame es rendered*/
} }

之后,我必须创建一个具有烟雾效果的sks文件,称为MyParticle.sks

然后在我的控制器上,我添加了一个视图并将其设置为类"SKView"。

然后我将该视图链接为

  @IBOutlet weak var blurLoading: SKView!

并添加此元素:

   var amiterlayer: CAEmitterLayer = CAEmitterLayer()

最后,在视图加载事件上,我添加:

   self.blurLoading.showsFPS = true
   self.blurLoading.showsNodeCount = true
   let s:MyScene = MyScene (size: self.blurLoading.bounds.size)
   s.scaleMode = SKSceneScaleMode.AspectFill
   self.blurLoading.presentScene (s)

触摸屏幕时效果有效,如果您想调用按需,只需执行:self.blurLoad.scene.newExplosion(x,y)。

它有效 !!

最新更新