首页 > 解决方案 > swift中的didBegin方法不会被所有碰撞调用

问题描述

我正在创建一个游戏,其中一个球可以通过相同颜色的杆子,但如果杆子颜色不同,则会与球发生碰撞并结束比赛。最初,我的碰撞检测方法在有两个极点时有效,但现在我添加了第三个,但它不起作用。添加额外的极点应该与碰撞无关。但是,现在游戏不会检测到第三极的碰撞,无论颜色如何,总是会与第二极发生碰撞,并且第一极按预期工作。Pole 是一个类,所有三个极点都是该类的对象。didBegin 方法。甚至不要求第三极,我不知道为什么

 ball?.physicsBody?.categoryBitMask = 1
    ball?.physicsBody?.collisionBitMask = 2
    ball?.physicsBody?.contactTestBitMask = 2

在极类:

   self.physicsBody?.categoryBitMask = 2
    self.physicsBody?.collisionBitMask = 1
    self.physicsBody?.contactTestBitMask = 1

标签: iosswiftsprite-kit

解决方案


推荐阅读