Мои спрайты довольно маленькие, поэтому иногда нажатия не очень точны. Я хотел бы знать, как я могу увеличить область вокруг спрайта только для распознавания касания, чтобы другие вещи, такие как физика, не затрагивались?
Например, скажем, размер моего спрайта 40x40, и я хочу, чтобы прикосновение распознавалось по большей области 60x60 для данного спрайта.
Пожалуйста, смотрите код ниже:
func singleTapHandler(recognizer:UITapGestureRecognizer){
let locationInView = recognizer.location(in: self.view)
let locationInScene = self.convertPoint(fromView: locationInView)
print(locationInScene)
let node = atPoint(locationInScene)
if let nodeName = node.name {
if nodeName = "group1" {
fliesGroup1.changePosition()
}
}
}
ОБНОВЛЕНИЕ Основываясь на ответе Hola, я сделал следующее, чтобы создать пустой SKNode, но он не распознается, когда я использую flyTouchName
для проверки местоположения в сцене с кодом выше.
var touchNode = SKNode()
touchNode.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 60, height: 60))
touchNode.physicsBody?.collisionBitMask = 0
touchNode.isUserInteractionEnabled = true
touchNode.physicsBody?.contactTestBitMask = 0
touchNode.name = flyTouchName
fly.addChild(touchNode)
frame
— это свойство только для получения 13.03.2017