菜鸟教程小白 发表于 2022-12-13 15:27:38

ios - 当两个机构不联系时如何接收通知?


                                            <p><p>在 <code>DidBeginContact</code> 我喜欢在两个机构不联系时收到通知。 </p>

<p>我尝试使用 <code>!(NOT)</code> 运算符,但它不起作用。 </p>

<pre><code>if (!(firstBody.categoryBitMask == kBrickCategory &amp;&amp; secondBody.categoryBitMask == kCarCategory)) {
    NSLog(@&#34;Hit&#34;);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>didBeginContact</code> 仅在发生碰撞时调用。您将 <code>update</code> 中的 <code>Bool</code> 设置为 <code>false</code> 并在 <code>didBeginContact</code> 中将其设置为 <code>true</code> if发生了碰撞。在 <code>didFinishUpdate</code> 中检查并采取相应措施。</p>

<p>示例代码使用 Swift,但应该很容易转换为 Objective-C。</p>

<pre><code>class MyScene: SKScene, SKPhysicsContactDelegate {

    var contactMadeThisFrame = false

    override func update(currentTime: NSTimeInterval) {
      contactMadeThisFrame = false
    }

    func didBeginContact(contact: SKPhysicsContact) {
      let firstBody = contact.bodyA
      let secondBody = contact.bodyB
      if firstBody.categoryBitMask == kBrickCategory &amp;&amp; secondBody.categoryBitMask == kCarCategory {
            contactMadeThisFrame = true
      }
    }

    override func didFinishUpdate() {
      if !contactMadeThisFrame {
            print(&#34;Hit&#34;)
      }
    }
}
</code></pre>

<p>如果您想逐个节点检查(仅对未联系的节点执行操作),那么您可以遍历主体并检查 <code>physicsBody.allContactedBodies</code> 计数是否为零。在 <code>didFinishUpdate</code> 中执行此操作。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当两个机构不联系时如何接收通知?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36049398/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36049398/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当两个机构不联系时如何接收通知?