我是编程的新手,我正在尝试学习如何使用Spritekit和Swift 4制作简单的iOS游戏。
到目前为止,我取得了一些小成就,但是我想在游戏中添加更多细节,以使其更具可玩性。
我在GameScene中添加了一些动作,以便当用户点击屏幕时,Sprite会执行一个动作。效果很好,但现在我要保持如果用户将手指放在屏幕上,则重复该操作。
我已经阅读了一些有关它的文章,但是它们似乎都指向了Objective-C或更早的Swift版本,它们在测试时仅仅弹出了一些错误,我无法让它们为我工作。
我知道我应该使用UILongPressGestureRecognizer
的某些实例,但是Apple's documentation在如何初始化它或在action: Selector?
上声明什么方面似乎很混乱
据我所知,我的viewDidLoad
中必须包含以下内容:
let longTapRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
self.addGestureRecognizer(longTapRecognizer)
然后编写一个处理该动作的函数(我不确定是否也在viewDidLoad
内):
func handleLongPress(recognizer: UIGestureRecognizer) {
if recognizer.state == .began {
print("Long press")
}
}
听起来很简单,我似乎根本无法理解应该如何声明action:
或如何解决这个问题。
任何指导将不胜感激!
答案 0 :(得分:2)
快速操作的语法为#selector(methodName(params:))
(请参见https://developer.apple.com/documentation/swift/using_objective_c_runtime_features_in_swift)
您的手势识别器将这样写:
let longTapRecognizer = UILongPressGestureRecognizer(
target: self,
action: #selector(handleLongPress(recognizer:)))