swift - SpriteKit 中的 didBeginContact() 不起作用

标签 swift sprite-kit

在我的 SpriteKit 项目 (Swift) 中,我像其他人一样使用 Xcode 中的自动填充功能。但是当我输入 didBeginContact 时,什么也没有出现。我什至尝试像这样把所有内容都打出来......

func didBeginContact(contact: SKPhysicsContact) {

}

但它只是创建了一个全新的函数。我在类中输入这个函数,它不是在另一个函数旁边创建的。以前有人遇到过这个问题吗?有谁知道解决办法吗?

最佳答案

我从未听说过自动填充功能。当有东西接触时,你必须告诉函数该做什么。例如:

func didBeginContact(contact: SKPhysicsContact) {
    let firstBody : SKPhysicsBody = contact.bodyA
    let secondBody : SKPhysicsBody = contact.bodyB

    CollisionWithBullet(firstBody.node as! SKSpriteNode, Bullet: secondBody.node as! SKSpriteNode)
}

func CollisionWithBullet(Enemy: SKSpriteNode, Bullet: SKSpriteNode) {

    Enemy.removeFromParent()
}

当“敌人”击中“子弹”时,这将移除它。您可以在 YouTube 上查看 Jared Davidson 撰写的精彩教程。 https://www.youtube.com/watch?v=CeW6SCQv--o

关于swift - SpriteKit 中的 didBeginContact() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578765/

相关文章:

ios - 将 MDCAppBarNavigationController 与 Storyboard一起使用

ios - 如何根据某些百分比值在 UIView 上显示百分比状态或进度?

ios - 是否可以将 physicsbody 仅定位到 Sprite 的一部分?

ios - 当我尝试将其设为可选时遇到 : Unexpectedly found nil while unwrapping an Optional value,,我收到另一个错误

swift - 在 Swift Sprite Kit 中预加载纹理时如何防止白屏?

ios - 'NSInvalidArgumentException',原因: 'Resource beep.wav can not be loaded' iOS Sprite Kit

ios - 如何检查 SKSpriteNode 的底部是否在当前可见场景内

swift - 随机生成一个 Spritekit 节点

swift - 卡在 DeckOfCards 类

swift - Swiftui [BUG] NavigationView和列表仅在iPad模拟器上不显示