2016-10-11 37 views
2

試圖讓精靈「PlayButton」的比例繼續向上和向下縮放以提示用戶觸摸它。似乎無法得到它的工作。用SKAction.scale更改精靈的比例

這是Menu類:

import SpriteKit 

class MenuScene: SKScene { 

let ScalePBup = SKAction.scaleX(to: 300, y: 300, duration: 10) 
let ScalePBdown = SKAction.scaleX(to: -300, y: -300, duration: 10) 

//MARK: - Private Instance Variables 
private let logo = GameLogo() 
private let title = GameTitle() 
private let playButton = PlayButton() 
private let background = Background() 
private let foreground = Foreground() 
private let background2 = Background2() 

//MARK: - Init 
required init ?(coder aDecoder: NSCoder){ 
    super.init(coder:aDecoder) 
} 
override init(size: CGSize){ 
    super.init(size: size) 
} 
override func didMove(to view: SKView){ 
    self.setup() 
} 
//MARK: - Setup 
private func setup() { 

    self.backgroundColor = Colors.colorFromRGB(rgbvalue: Colors.background) 
    self.addChild(logo) 
    self.addChild(title) 
    self.addChild(playButton) 
    self.addChild(background) 
    self.addChild(foreground) 
    self.addChild(background2)   
} 

// MARK: - Update 
override func update(_ currentTime: TimeInterval) {} 
// MARK: - Touch Handling 
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    let touch:UITouch = touches.first! as UITouch 
    let touchLocation = touch.location(in: self) 
    if playButton.contains(touchLocation){ 
     loadScene() 
    } 
} 

// MARK: - Load Scene 
private func loadScene() { 
    let scene = GameScene(size: kViewSize) 
    let transition = SKTransition.fade(with: SKColor.black, duration: 0.5) 
    self.view?.presentScene(scene, transition: transition) 
    run(SKAction.repeatForever(SKAction.sequence([ 
     SKAction.run(ScalePBup, onChildWithName: "playButton"), 
     SKAction.run(ScalePBdown, onChildWithName: "playButton") 
     ]) 
    )) 
} 
} 

這裏是精靈

import SpriteKit 

class PlayButton: SKSpriteNode { 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
} 

override init(texture: SKTexture?, color: UIColor, size: CGSize) { 
    super.init(texture: texture, color: color, size: size) 
} 

convenience init() { 
    let texture = GameTextures.sharedInstance.texture(name: SpriteName.playButton) 
    self.init(texture: texture, color: SKColor.white, size: texture.size()) 

    setup() 
} 

private func setup() { 
    self.position = CGPoint(x: kViewSize.width/2, y: kViewSize.height * 0.2) 
} 

} 

請讓我知道如果您有任何建議!謝謝!

回答

5

MenuScene刪除代碼:

run(SKAction.repeatForever(SKAction.sequence([ 
     SKAction.run(ScalePBup, onChildWithName: "playButton"), 
     SKAction.run(ScalePBdown, onChildWithName: "playButton") 
     ]) 
    )) 

類PLAYBUTTON地址:

let ScalePBup = SKAction.scaleX(to: 300, y: 300, duration: 10) 
let ScalePBdown = SKAction.scaleX(to: -300, y: -300, duration: 10) 

func startPulse() { 
    run(SKAction.repeatForever(SKAction.sequence([ScalePBup,ScalePBdown]))) 
} 

func removePulse() { 
    removeAllAction() 
} 

MenuScene

override func didMove(to view: SKView){ 
    self.setup() 
    playButton.startPulse() 
} 
+0

這個工作!非常感謝你! – Lyres