Я пытаюсь добавить салфетки жест в узел так, что когда пользователь пойло, он выходит за пределы экрана, но я продолжаю получать SIGABRT
ошибку:Как добавить салфетки жест к узлу в spritekit
`Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[fidget2.PlankScene swipedRight:]: unrecognized selector sent to instance 0x7ff4c3603e00'`
Я не уверен, почему эта ошибка появляется. Я убедился, что узел правильно помечен в файле .sks
. Вот мой код:
import SpriteKit
let plankName = "woodPlank"
class PlankScene: SKScene {
var plankWood : SKSpriteNode?
override func didMove(to view: SKView) {
plankWood = childNode(withName: "woodPlank") as? SKSpriteNode
let swipeRight : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:"))
swipeRight.direction = .right
view.addGestureRecognizer(swipeRight)
}
func swipedRight(sender: UISwipeGestureRecognizer) {
print("Object has been swiped")
}
func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent)
{
let touch = touches.first as! UITouch
let location = touch.location(in: self)
if (plankWood?.frame.contains(location))!
{
print("Swipe has started")
}
}
}
Заменить 'Selector ("swipedRight:")' с '#selector (PlankScene.swipedRight)' – 0x141E
проверить didMove только вызывается один раз, и удалить этот жест в вашем Deinit. – Knight0fDragon
Идентификаторы жестов не добавляются к узлам, а скорее к представлениям ... – Whirlwind