swift - 当碰撞发生时如何快速执行操作? (我没有使用 Sprite 套件)

标签 swift uiview collision detect

 var animator0: UIDynamicAnimator!
var gravity0: UIGravityBehavior!
var collision0: UICollisionBehavior!

添加这些后,我使 View 下降,但是当发生碰撞时,我想要执行一个操作,我也尝试在 viewdidappear 函数中编写一个 if 语句:如果 View 的 y 坐标位于精确的点,则执行行动,但也没有奏效。

最佳答案

确保您的 View Controller 类符合协议(protocol) UICollisionBehaviourDelegate

class ViewController: UIViewController, UICollisionBehaviorDelegate 

现在,

  • 使碰撞对象的 View Controller 委托(delegate)

     collision0.collisionDelegate = self
    
  • 实现以下方法

    func collisionBehavior(behavior: UICollisionBehavior!, beganContactForItem item: UIDynamicItem!, withBoundaryIdentifier identifier: NSCopying!, atPoint p: CGPoint) {
    
     print("Collision Detected- \(identifier)")
     //Perform the action you wanted here.
    
     }
    

关于swift - 当碰撞发生时如何快速执行操作? (我没有使用 Sprite 套件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720466/

相关文章:

python - 如何在 pygame 中使用 .spritecollide() 来检测碰撞?

swift - 使用 swift 更新到 Xcode 6 beta 4 后获取 dyld_fatal_error

ios - 如何从另一个 ViewController 更改一个 ViewController 上的标签文本

ios - 尝试从 plist 加载数据并刷新屏幕

swift - 如果我们在羊皮纸的 HeaderExample 中替换 UIView 而不是 UIImageView,则渐变背景不起作用

c++ - ASCII 字符哈希冲突测试

swift - 在 Swift 中获取 bool 的位模式

ios - 使用标题 View 自定义导航栏

ios - 'imageEdgeInsets' 在 iOS 15.0 中已弃用

javascript - 检测数组中两个 Sprite 的碰撞? JavaScript