Это мой первый проект со Swift, и я пытаюсь учиться, но я застрял и не могу найти решение онлайн. По сути, это клон понга, и все идет хорошо, до сих пор. Моя проблема в том, что я не могу понять, как заставить играть звуковой эффект, как только мой мяч попал в ракетку. Все остальное со столкновениями в порядке, а другие звучат как цель, в которой играешь хорошо. Просто не могу понять, как я могу заставить звук играть, когда два спрайта сталкиваются. Вот что я написал:
func didBegin(_ contact: SKPhysicsContact) {
if contact.bodyA.node?.name == "main" && contact.bodyB.node?.name == "ball" || contact.bodyB.node?.name == "main" && contact.bodyA.node?.name == "ball" || contact.bodyA.node?.name == "enemy" && contact.bodyB.node?.name == "ball" || contact.bodyB.node?.name == "enemy" && contact.bodyA.node?.name == "ball" {
ball.run(blipPaddleSound)
}
}
Это все неправильно?
Я уже пытался разорвать оператор if, и уже пытался заставить один из моих узлов запустить звуковой эффект. (ball.run ('nameofthesound'). Я думал, что это может быть проблема с файлом, но другой эффект не играет так хорошо в этой части кода. Я не думаю, что есть проблема с столкновение, потому что мяч подпрыгивает на весле и на стене без проблем
Это часть кода, где я поместил всю маску столкновения и контакта:
ball.physicsBody?.contactTestBitMask = 1
ball.physicsBody?.collisionBitMask = 3
ball.physicsBody?.categoryBitMask = 1
main.physicsBody?.contactTestBitMask = 3
main.physicsBody?.collisionBitMask = 1
main.physicsBody?.categoryBitMask = 2
enemy.physicsBody?.contactTestBitMask = 3
enemy.physicsBody?.collisionBitMask = 1
enemy.physicsBody?.categoryBitMask = 2