初学者swift sprite kit – 节点碰撞检测帮助(SKPhysicsContact)

初学者swift sprite kit – 节点碰撞检测帮助(SKPhysicsContact),第1张

概述我想要一个精灵在触摸另一个精灵时删除自己.就在他们触摸时,他们只是互相推动. 我有这个: let alphaCategory: UInt32 = 0x1 << 0let betaCategory: UInt32 = 0x1 << 1 我让精灵充满活力而不受重力的影响 self.physicsworld.contactDelegate = selfalpha.physicsBody?.cate 我想要一个精灵在触摸另一个精灵时删除自己.就在他们触摸时,他们只是互相推动.

我有这个:

let Alphacategory: UInt32 = 0x1 << 0let betacategory: UInt32 = 0x1 << 1

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

self.physicsworld.contactDelegate = selfAlpha.physicsBody?.categoryBitMask = AlphacategoryAlpha.physicsBody?.contactTestBitmask = betacategory

beta.physicsBody?.categoryBitMask = betacategorybeta.physicsBody?.contactTestBitmask = Alphacategory

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

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()    }}
首先,你应该设置你的firstbody& secondBody到他们的collisionBitMask的顺序:
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属性的位置:

Alpha.physicsBody.collisionBitMask = 0beta.physicsBody.collisionBitMask = 0
总结

以上是内存溢出为你收集整理的初学者swift sprite kit – 节点碰撞检测帮助(SKPhysicsContact)全部内容,希望文章能够帮你解决初学者swift sprite kit – 节点碰撞检测帮助(SKPhysicsContact)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1049928.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存