Моя цель - изменить fillColor SKShapeNode, как только этот узел столкнется с другим узлом. Я действительно знаю, как редактировать физическое тело в точке столкновения, но мне не удалось понять, как изменить свойства, такие как fill- или strokeColor узла.
SKShapeNode:
func addBrick() -> SKShapeNode {
let brick = SKShapeNode(rect: CGRect(x: -100, y: -20, width: 200, height: 40), cornerRadius: 20)
brick.fillColor = .blue
brick.strokeColor = .blue
brick.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 200, height: 40))
brick.position = CGPoint(x: 0, y: -50)
brick.zPosition = 2
brick.physicsBody?.categoryBitMask = BrickCategory
brick.physicsBody?.collisionBitMask = PlayerCategory
brick.physicsBody?.contactTestBitMask = PlayerCategory
return brick
}
Затем я проверяю контакт между игроком и кирпичом:
func didBegin(_ contact: SKPhysicsContact) {
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch contactMask {
case PlayerCategory | BrickCategory:
print("")
default:
print("Unknown collision")
}
}
Я знаю, что могу внести изменения в само физическое тело, используя
contact.bodyB.node?.//make changes here
, но я не знаю, как изменить, например, fillColor для bodyB на красный.
Я ценю вашу помощь!