Обнаружение столкновения SpriteKit не работает должным образом - PullRequest
0 голосов
/ 05 марта 2019

Итак, у меня есть этот код в моем классе GameScene (дочерний элемент SKScene):

physicsWorld.contactDelegate = self
physicsWorld.gravity = CGVector(dx: 0, dy: -9.8)
addChild(balloon)
addChild(monkey)
monkey.physicsBody = SKPhysicsBody(rectangleOf: monkey.frame.size)
monkey.physicsBody?.isDynamic = false
monkey.physicsBody?.categoryBitMask = 0
monkey.physicsBody?.contactTestBitMask = 1//Balloon.categoryBitMask

balloon.physicsBody = SKPhysicsBody(rectangleOf: balloon.frame.size)
balloon.physicsBody?.isDynamic = false
balloon.physicsBody?.categoryBitMask = 1
balloon.physicsBody?.contactTestBitMask = 0
balloon.start()

Я вижу, что воздушный шар и узел обезьяны касались друг друга в симуляторе, однако, Ничего не произошло.Я также соответствовал протоколу SKPhysicsContactDelegate, например:

extension GameScene: SKPhysicsContactDelegate {
    func didBegin(_ contact: SKPhysicsContact) {
        print("CONTACT!!!")
    }
}

Редактировать: я установил isDynamic = true, и он напечатал «CONTACT !!»как и ожидалось, однако я не хочу, чтобы объекты влияли на положение друг друга

...