Я пытался выучить набор сценариев и закончил одну книгу, но только часть обнаружения столкновений не понята, возможно, самая важная часть.
Есть маска категории, маска сговора и физическое тело? .ContactTestBitMask.
Я хочу создать простую игру, чтобы получить это, но я застрял. Я не уверен, что понял идею.
В игре есть шар, который собирает жемчуг и держится подальше от камней и ям. В этом случае:
Категория масок:
- ball = 0b0001
- жемчуг = 0b0010
- пород = 0b0100
- отверстия = 0b1000
physicsBody .contactTestBitMask:
- шар = жемчуг || камни // означает 0b1110
- жемчуг = 1
- пород = 1
Маски сговора равны 1, потому что все они сталкиваются друг с другом.
Я не уверен, что столкнулся с этой проблемой. Поэтому, прежде чем я начну писать код, я хотел быть уверен. В SCNPhysicsContactDelegate функция ниже решает, как узнать, когда они контактируют друг с другом:
physicsWorld(_ didBegin contact: _) {
var contactNode:SCNNode!
if contact.nodeA.name == "ball" {
contactNode = contact.nodeB
} else {
contactNode = contact.nodeA
}
if contactNode.physicsBody?.categoryBitMask == 0b0010 {
// mean pearls
// raise score etc
}
if contactNode.physicsBody?.categoryBitMask == 0b0100 || 0b1000{
if contactNode.name == "Rock" { print("You rocked") }
if contactNode.name == "Hole" { print("You need to climb") }
}
}
Я искал youtube и стек, но есть только одно объяснение.
Ссылка на стек
Youtube видео не объясняют это.
Примеры книг защищены авторским правом, поэтому я не могу их здесь разместить.
Спасибо,
Хорошего дня.