首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初学者快速精灵工具包-节点碰撞检测帮助(SKPhysicsContact)

初学者快速精灵工具包-节点碰撞检测帮助(SKPhysicsContact)
EN

Stack Overflow用户
提问于 2014-10-09 04:45:30
回答 3查看 4.1K关注 0票数 1

我想要一个精灵在触摸另一个精灵时删除它自己。现在当他们触碰的时候,他们只是互相推搡。

我有这个:

代码语言:javascript
复制
let alphaCategory: UInt32 = 0x1 << 0
let betaCategory: UInt32 = 0x1 << 1

我使精灵充满活力而不受重力的影响

代码语言:javascript
复制
self.physicsworld.contactDelegate = self

alpha.physicsBody?.categoryBitMask = alphaCategory
alpha.physicsBody?.contactTestBitmask = betaCategory

代码语言:javascript
复制
beta.physicsBody?.categoryBitMask = betaCategory
beta.physicsBody?.contactTestBitmask = alphaCategory

我找不到任何对我有意义的东西,但我认为问题就在这里。

代码语言:javascript
复制
func didBeginContact(contact: SKPhysicsContact) {

    var firstBody: SKPhysicsBody
    var secondBody: SKPhysicsBody

    if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
        firstBody = contact.bodyA
        secondBody = contact.BodyB
        beta.removeFromParent()
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-09 18:45:33

首先,您应该将firstBody & secondBody设置为它们的collisionBitMask的顺序:

代码语言:javascript
复制
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask 
    {
        firstBody = contact.bodyA
        secondBody = contact.bodyB
    }
else {
        firstBody = contact.bodyB
        secondBody = contact.bodyA
     }

if firstBody.categoryBitMask=0 && secondBody.categoryBitMask=1 {
      secondBody.removeFromParent()
}

这将防止你的精灵与任何东西(包括彼此)发生碰撞。将此设置为设置其他BitMask属性的位置:

代码语言:javascript
复制
alpha.physicsBody.collisionBitMask = 0
beta.physicsBody.collisionBitMask = 0
票数 1
EN

Stack Overflow用户

发布于 2015-01-23 15:15:45

这实际上会引起问题,正如我去年夏天在SpritKit游戏工作时发现的那样。如果在任何SKPhysicsContact回调过程中修改场景的节点结构,则根据苹果的说法,结果是未定义的。在提交了一个bug之后,有人告诉我,您永远不应该从这些回调的内部修改场景节点结构。相反,苹果说,只需设置一个标志,然后处理场景修改在您的更新循环中,它是安全的。

票数 1
EN

Stack Overflow用户

发布于 2014-10-09 18:39:33

尝试:

代码语言:javascript
复制
secondBody = contact.bodyB
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26270504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档