【发布时间】:2016-09-06 09:02:51
【问题描述】:
您好,我需要您的帮助我一直在寻找这个问题的答案。
我还简化了代码,以消除您不需要知道的信息/垃圾。
我有一个使用 SpriteKit 和 Swift 的 IOS 游戏的主菜单场景。有一个主菜单播放按钮。我想要的是当按下按钮时,按钮会变大一点。当我的手指松开时,按钮变小。使用 override func touchesBegan / touchesEnded 可以正常工作。我的问题是当我的手指被拖离按钮时,就像取消一样。按钮不会恢复到原始大小。我很确定我需要使用
override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {}
但是经过多次尝试,当我的手指被拖离按钮时,我没有得到想要的结果,即让按钮恢复到原始大小。感谢您的帮助。
import Foundation
import SpriteKit
import UIKit
class StartScene: SKScene {
var playButton: SKNode! = nill
override func didMoveToView(view: SKView) {
// Create PlayButton image
playButton = SKSpriteNode(imageNamed: "playButtonStatic")
// location of Button
playButton.position = CGPoint(x:CGRectGetMidX(self.frame), y:520);
self.addChild(playButton)
playButton.setScale(0.5)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if playButton.containsPoint(location) {
playButton.setScale(0.6)}}}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if playButton.containsPoint(location) {
playButton.setScale(0.5)
}}}
// Problem Area
override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
for touch: AnyObject in touches! {
let location = touch.locationInNode(self)
if playButton.containsPoint(location) {
playButton.setScale(0.5)
}}}
}
感谢您的回复
【问题讨论】:
标签: swift