У меня есть приложение, которое вызывает мяч на экране каждую секунду. теперь я хочу, чтобы пользователь коснулся этих шаров, чтобы они исчезли (removeFromParent()). я так понимаю надо настроить сенсорную функцию через touchesBegan и я так и делаю, вот мой код:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches{
let positionOfTouch = touch.location(in: self)
enumerateChildNodes(withName: "BALL") { (node: SKNode, nil) in
if positionOfTouch == node.position {
print("just touched the ball")
}
else{
print("error")
}
}
}
проблема в том, что когда я касаюсь экрана/мяча, консоль печатает ошибка вместо просто коснулся мяча, что означает, что мой код не работает. кроме того, консоль выводит сообщение об ошибке как количество шаров в моем представлении. Я не понимаю, что я делаю неправильно и как на самом деле настроить эту функцию. вот моя функция createBall, которая реализуется из моего класса BallNode (тип SKShapeNode):
func createBall(){
let ball = BallNode(radius: 65)
print(ball.Name)
print(ball._subName!)
ball.position.y = ((frame.size.height) - 200)
let ballXPosition = arc4random_uniform(UInt32(frame.size.width)) // set the ball a randon position from the top of the screen
ball.position.x = CGFloat(ballXPosition)
ball.physicsBody?.categoryBitMask = PhysicsCategory.ball // ball's category bitMask
ball.physicsBody?.collisionBitMask = PhysicsCategory.ball // prevent objects from intersecting
ball.physicsBody?.contactTestBitMask = PhysicsCategory.topBorder // when need to know if two objects touch each other
addChild(ball)
}
Вы можете помочь мне с этим? потому что я новичок в быстром, я также хотел бы получить некоторые объяснения об этом обнаружении касания (и касаниях в целом - документ Apple плохой).