Как определить, что ваш палец контактирует с замаскированным спрайтом
Я должен сказать, что один разработчик сказал, что вы должны создать тело skphysics, чтобы тело функции в точке работало так, если есть какой-то конкретный код для создания тела skphysics этого спрайта? потому что я уже дал альфа-маску в файле sks в части физики. кстати, он также дал мне пример кода, который:
if let _ = physicsworld.body(at : fingerlocation)
но вы знаете, когда я использую этот код в моем touchesmoved
Функция это доза не работает только для маскированной части этого спрайта он работает для всего ограничивающего прямоугольника этого спрайта
1 ответ
Если я правильно понимаю, вы хотели бы ограничить физическое тело только текстурой спрайта вместо прямоугольника.
let texture = SKTexture(imageNamed: "imageNameHere")
maskedSprite.physicsBody = SKPhysicsBody(texture: texture , size: texture.size)
Если вы просто пытаетесь увидеть, вступил ли он в контакт, вам вообще не нужно физическое тело, вы можете добавить имя к узлу и в touchesBegan проверить узел в точке касания, чтобы увидеть, имеет ли оно то же имя как замаскированный спрайт.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
switch atPoint(location).name {
case "maskedsprite"?: print("masked sprite touched")
default: break
}
}
}