2015-02-24 13 views
5

Tôi đang làm việc trên ứng dụng SpriteKit đầu tiên của mình trong Xcode 6, mã hóa bằng Swift. Bây giờ tôi đã thực hiện một số nút đẹp từ các tệp png trong suốt. Nhưng tôi đang cố gắng hiển thị hiệu ứng hình ảnh khi nút được đẩy.Thêm hiệu ứng hình ảnh vào SKSpriteNode khi nhấn

Ví dụ như thế nào bây giờ tôi thấy một nút tĩnh:

let playButton = Button(imageNamed:"playButton") 
playButton.position = CGPointMake(self.size.width/2, self.size.height/2 - playButton.size.height * 2.5 - displacement) 
self.sharedInstance.addChildFadeIn(playButton, target: self) 

Bất kỳ tác dụng sẽ là đủ, có thể ảnh hưởng xung, hoặc sáng trên báo chí. Tôi đã tìm kiếm, nhưng tôi thực sự không thể tìm thấy bất cứ điều gì trong Swift.

chỉnh sửa: biết thêm

class Button: SKSpriteNode { 
     init(imageNamed: String) { 
      let texture = SKTexture(imageNamed: imageNamed) 
      // have to call the designated initializer for SKSpriteNode 
      super.init(texture: texture, color: nil, size: texture.size()) 
     } 
     override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
      self.runAction(SKAction.scaleTo(1.3, duration: kButtonFadingSpeed)) 
     }  
     override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { 
      self.runAction(SKAction.scaleTo(1.3, duration: kButtonFadingSpeed)) 
     } 
     override func touchesEnded(touches: NSSet, withEvent event: UIEvent) { 
      self.runAction(SKAction.scaleTo(1.0, duration: kButtonFadingSpeed)) 
     } 

     required init(coder aDecoder: NSCoder) { 
      fatalError("init(coder:) has not been implemented") 
     } 
} 

    func addChildFadeIn(node: SKNode, target: SKNode) { 
     node.alpha = 0 
     target.addChild(node) 
     node.runAction(SKAction.fadeAlphaTo(1.0, duration: NSTimeInterval(kAddChildSpeed))) 
    } 

Chức năng AddChildFadeIn được định nghĩa trong lớp: singleton

Bất kỳ giúp đỡ được nhiều đánh giá cao!

+0

Nút là gì? AddChildFadeIn được định nghĩa ở đâu? –

+0

Tôi đã chỉnh sửa bài đăng với thông tin đó. Bạn có thể giúp tôi? –

+0

Thật không may tôi không biết SpriteKit. Tôi đã cập nhật tiêu đề và thẻ của bạn để làm cho câu hỏi của bạn dễ phát hiện hơn bởi những người có thể trả lời. –

Trả lời

0

Bạn có thể muốn có một cái nhìn tại thread này How can you create a glow around a sprite via SKEffectNode nơi một số người dùng đã đề xuất việc sử dụng SKEffectNode. Tuy nhiên, phải mất rất nhiều năng lượng CPU để làm điều đó.

Ngoài ra còn có việc sử dụng SKShapeNode được đề xuất cũng có thể có vấn đề hiệu suất và đọc thêm về nó có thể được thực hiện ở đây Poor performance with SKShapeNode in Sprite Kit.

1

Tôi tìm thấy một giải pháp tốt đẹp cho vấn đề này là để sao chép các nút gốc, đặt thông số alpha của bản sao đến 0,5 chỗ nó trực tiếp trên đầu trang của nút gốc, và thiết lập blendMode nó thêm. đây là một mẫu.

// this is our original node that we want to make glow 
playButton.anchorPoint = CGPointMake(0.5, 0.5) 

// create a copy of our original node create the glow effect 
let glowNode : SKSpriteNode = playButton.copy() as! SKSpriteNode 
glowNode.size = playButton.size 
glowNode.anchorPoint = playButton.anchorPoint 
glowNode.position = CGPoint(x: 0, y: 0) 
glowNode.alpha = 0.5 
glowNode.blendMode = SKBlendMode.Add 

// add the new node to the original node 
playButton.addChild(glowNode) 

// add the original node to the scene 
self.addChild(playButton) 
Các vấn đề liên quan